CSV exportieren mit Leerzeile

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: CSV exportieren mit Leerzeile

Re: CSV exportieren mit Leerzeile

von Hago » Di, 20.12.2022 21:03

Mit Python habe ich eben noch überhaupt nie irgendwas zu tun gehabt.
Deshalb…

Wenn man das innerhalb des Makros mit Basic machen könnte, fände ich es gut.

Am besten wäre es, in dem Makro nicht einen festen Bereich zu kopieren, sondern nur die belegten Zeilen und dann noch eine Zeile dazu zu fügen.
Aber ich weiß eben nicht, wie das mit basic zu machen ist.

Gruß, Hago

Re: CSV exportieren mit Leerzeile

von Karolus » Di, 20.12.2022 19:32

Hallo
Hm - eine sehr gute Idee ist das nicht, eher ein »würg-around«, aber wenns mit dem externen perl-script klappt dann isses ja gut.

( ist halt Geschmackssache, ich würde alles einschliesslich .csv -export von intern mit python regeln )

Re: CSV exportieren mit Leerzeile

von Hago » Di, 20.12.2022 19:06

Hallo Karolus,

Ach, jetzt verstehe ich, was du meinst. Das ist eine sehr gute Idee, ich kann das ja auch mit einem Perl-Script machen, da kenne ich mich besser aus und das dürfte ziemlich einfach werden. Blöd, dass ich da nicht früher drauf gekommen bin.

Vielen Dank!
Hago

Re: CSV exportieren mit Leerzeile

von Karolus » Di, 20.12.2022 18:32

Hallo Hago
Hago hat geschrieben: Di, 20.12.2022 12:15 Hallo Karolus,

ich bräuchte schon noch ein paar erklärende Worte dazu.
Mir ist nicht klar, wie ich das in den Code einfügen soll.

Gruß, Hago
Im Eingangsbeitrag finde ich die auskommentierte Codezeile:

Code: Alles auswählen

rem Shell("D:\perl\bin\perl.exe ftp-upload-CSV_listen.pl",1)
Da hab ich mir gedacht daß du das sinngemäss auch mit einem externen python-script mit dem oben geposteten Code schaffst.

Re: CSV exportieren mit Leerzeile

von Hago » Di, 20.12.2022 13:26

außerdem:
ZA01.jpg
ZA01.jpg (20.12 KiB) 1513 mal betrachtet

Re: CSV exportieren mit Leerzeile

von Hago » Di, 20.12.2022 12:15

Hallo Karolus,

ich bräuchte schon noch ein paar erklärende Worte dazu.
Mir ist nicht klar, wie ich das in den Code einfügen soll.

Gruß, Hago

Re: CSV exportieren mit Leerzeile

von Karolus » Di, 20.12.2022 12:02

Hallo

Code: Alles auswählen

import uno
path = uno.fileUrlToSystemPath( sUrl1 )
with open( path, "a" ) as csv_file:
    csv_file.write( "\n")

Re: CSV exportieren mit Leerzeile

von Hago » Di, 20.12.2022 11:08

Hallo balu,

nein, das bringt nichts.
Von den 100 vorgesehenen Zeilen werden meistens zwischen 45 und 65 Zeilen belegt.
In der exportierten CSV-Datei sind immer nur die belegten Zeilen und ein letzter Zeilenumbruch gespeichert.
Ich hätte nun gerne noch eine leere Zeile dazu, egal wie viele Zeilen mit Daten gefüllt sind.

Gruß, Hago

Re: CSV exportieren mit Leerzeile

von balu » Di, 20.12.2022 10:17

Hallo Hago.
Hago hat geschrieben: Di, 20.12.2022 09:16 Jetzt hätte ich gerne, dass beim Exportieren automatisch eine Leerzeile angehängt wird, ...
Was sollen wir uns darunter vorstellen?

Reicht es denn nicht, wenn Du aus

Code: Alles auswählen

args2(0).Value = "$B$7:$J$100"
das hier machst?

Code: Alles auswählen

args2(0).Value = "$B$7:$J$101"

Gruß
balu

CSV exportieren mit Leerzeile

von Hago » Di, 20.12.2022 09:16

Hallo,

ich habe vor ca.15 Jahren ein Makro gebastelt, das Calc-Dateien als CSV-Dateien exportiert. Das funktioniert auch alles immer noch prima.
Jetzt hätte ich gerne, dass beim Exportieren automatisch eine Leerzeile angehängt wird, ohne, dass irgend jemand irgendwie eingreifen muss.

Hier das Makro:

Code: Alles auswählen

sub MachCSV_Fleisch

dim document   as object
dim dispatcher as object 
dim sUrl1$     

Dok = ThisComponent 
Controller = Dok.CurrentController 
Blatt = Controller.ActiveSheet 

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())

dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$B$7:$J$100"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())

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())

dim args6(5) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Flags"
args6(0).Value = "SDV"
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 = true
args6(5).Name = "MoveMode"
args6(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args6())

dim args7(2) as new com.sun.star.beans.PropertyValue                       
'sUrl1$ = "file:///M:/Homepage/Preislisten/listeF.csv"          
'sUrl1$ = "file:///C:/xampp/htdocs/aserver/AAA/AAApflugi/listen/listeF.csv"
sUrl1$ = "file:///C:/Users/hz/Desktop/liste_F_1.csv"
args7(0).Name = "Overwrite"  
args7(0).Value = TRUE
args7(1).Name = "FilterName"
args7(1).Value = "Text - txt - csv (StarCalc)"
args7(2).Name = "FilterOptions"
args7(2).Value = "59,34,76,1,,0,true,true,true"
Dok.storeAsURL(sUrl1$, args7())

rem Shell("D:\perl\bin\perl.exe ftp-upload-CSV_listen.pl",1)

Dok.close(false)

end sub
Ich habe keine Ahnung, wie ich das anstellen soll - kann mir da vielleicht jemand helfen?

Grüße, Hago

Nach oben