"Leere" Zeilen bei Ausgabe in CSV unterdrücken?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: "Leere" Zeilen bei Ausgabe in CSV unterdrücken?

Re: "Leere" Zeilen bei Ausgabe in CSV unterdrücken?

von hylli » Fr, 15.03.2013 19:32

Also ich wollte zwar alles ohne Makros machen, habe das jetzt mal per Makro gelöst.

Per Makroaufzeichnung habe ich die "berechnete" Tabelle kopiert und in eine bereits erstellte Tabelle per "Inhalte einfügen" ohne Formeln eingefügt. Damit sind die unerwünschten Leerzeilen beim Export in CSV dann weg.

Dank diesem Beitrag habe ich dann gleich auch den Export mit ins Makro gepackt. Musste den Code zwecks Format und Pfad nur geringfügig anpassen.

Das ganze Makro sieht aktuell so aus:

Code: Alles auswählen

REM  *****  BASIC  *****


sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 4

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$Onlinebanking.$A$1:$V$200"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 5

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())

rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = "$A$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())

rem ----------------------------------------------------------------------
dim args6(5) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Flags"
args6(0).Value = "SVDNT"
args6(1).Name = "FormulaCommand"
args6(1).Value = 0
args6(2).Name = "SkipEmptyCells"
args6(2).Value = false
args6(3).Name = "Transpose"
args6(3).Value = false
args6(4).Name = "AsLink"
args6(4).Value = false
args6(5).Name = "MoveMode"
args6(5).Value = 4

dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args6())

rem ------------- Speichern als CSV --------------

Dim myProps(1) as New com.sun.star.beans.PropertyValue
sPath="/home/marco/Dokumente/Onlinebanking/Lastschtriftvorlagen.csv"
sUrl=ConvertToUrl (sPath)
myProps(0).Name = "FilterName"
myProps(0).Value ="Text - txt - csv (StarCalc)"
myProps(1).Name="FilterOptions"
myProps(1).Value ="59/9,34,33,1,1/1/2/1" 'string mit den Optionen
myDoc = thisComponent
myDoc.storeAsUrl(sUrl,myProps())
End Sub
Das Makro lässt sich mit Sicherheit noch kürzen, insbesondere der aufgezeichnete Teil. Für meine Zwecke würde es aber ausreichen.

Ein Hinweis auf Speicherort und Dateiname nach Speichern wäre natürlich hübsch, noch besser, wenn man den Speicherort und Namen selbst festlegen könnte.

Schade aber, dass es keine einfache Lösung ohne Makro gibt, wäre mir lieber gewesen.

Hylli

Re: "Leere" Zeilen bei Ausgabe in CSV unterdrücken?

von hylli » Do, 14.03.2013 16:26

Also diesen Zwischenschritt würde ich natürlich gerne vermeiden, aber nichtsdestotrotz habe ich das gerade mal getestet (AOO 3.4.0) und nun wird's kurios.

Beim Filtern auf ein Feld mit der Bedingung = "-nicht leer-" und Ausgabe auf ein neues Tabellenblatt, werden nur die Werte der ersten beiden Spalten übergeben?!?

Exportiere ich aber testweise diese neue Tabelle, bleiben meine ungewollten Leerzeilen auch weiterhin erhalten.

Edit:
Der Umweg über Kopieren der besagten Tabelle bzw. des relevanten Bereiches und "Inhalte einfügen" ohne Formeln in eine neue Tabelle, würde zwar funktionieren, aber auch diesen Schritt würde ich gerne vermeiden wollen.

Hylli

Re: "Leere" Zeilen bei Ausgabe in CSV unterdrücken?

von Karolus » Do, 14.03.2013 15:50

Hallo

Vor dem Export:
→Daten→Filter→Standardfilter mit der Bedingung »nicht leer« und Ausgabe in ein neues Tabellenblatt

Karolus

"Leere" Zeilen bei Ausgabe in CSV unterdrücken?

von hylli » Do, 14.03.2013 15:27

Ich erstellen gerade eine Art Mitgliedsdatenbank auf Basis eines Calc-Dokuments. Auf verschiedenen Tabellen werden dabei die Daten gepflegt.

Auf einer zentralen Tabelle, werden die Daten aus verschiedenen Tabellen per Funktionen zusammengeführt, hier eine beispielhafte Funktion:

Code: Alles auswählen

=WENN(ISTLEER(Mitgliederdaten.B4);"";Mitgliederdaten.B4&" "&Mitgliederdaten.C4)
Mein Problem:
Wie kann ich es vermeiden, dass beim Export der Tabelle augenscheinliche Leerzeilen mit exportiert werden?

So sieht der Export aktuell aus:
Mitglieds-Nr.;Name;Vorname;Straße;PLZ;Ort;...
101;Mustermann;Max;Musterstr. 1;99999;Musterstadt;...
102;Musterfrau;Heidi;Musterstr. 2;99999;Musterstadt;...
;;;;;;...
;;;;;;...
;;;;;;...
;;;;;;...
usw.
Meines Erachtens wird das doppelte Anführungszeichen "" nicht als leer interpretiert.

Wie kann ich also Leerzeilen beim Export ausschließen bzw. wie sage ich einer Zelle, dass diese tatsächlich leer ist, wenn eine Bedingung zutrifft?

Hylli :)

Nach oben