"C:\Program Files (x86)\LibreOffice\program\scalc.exe" --convert-to pdf C:\Users\leil\Documents\test\testregneark.xlsx --outdir C:\Users\leil\Documents\test
Her konverteres et regnearksdokument til PDF.
Der skal ikke meget til for at lave en løkke, som rekursivt konverterer alle xlsx-filer i en bestemt folder.
Men...
Import af CSV-filer er lidt mere kompliceret.
Når du importerer en CSV-fil med LibreOffice ledes du altid igennem et skærmbillede, som ser nogenlunde sådan ud:
Hvis vi skal konvertere en mængde af (ens) CSV-filer skal vi i kommandolinjen udfylde skærmbilledet ved at anvende en parameter "-infilter" som er temmelig kompliceret at regne ud. Det er reelt umuligt at regne sig frem til, at det skal se sådan ud: --infilter="csv:59/44,34,12,1,1/4,0,false,true,true,false,false".
Der er en meget let måde at finde denne parameters værdi på. Det kræver en lille makro:
Sub showFilterOptions
Dim args(),i%
args() = thisComponent.getArgs
for i = 0 to uBound(Args())
if args(i).Name = "FilterOptions" then inputbox "","",args(i).value
next
End Sub
Hvis du manuelt importerer en CSV-fil (og udfylder skærmbilleder korrekt), kan du umiddelbart efter køre denne makro. LibreOffice "husker" nemlig hvad du senest har importeret, og med denne makro får du oplyst hvad der er gemt.
Og import-kommandoen er derfor:
"C:\Program Files (x86)\LibreOffice\program\scalc.exe" --convert-to pdf --infilter="csv:59/44,34,12,1,1/4,0,false,true,true,false,false" C:\Users\leil\Documents\CSV\testdokument.csv --outdir C:\Users\leil\Documents\CSV