... А можно и обратно так же легко и непринужденно. Для этого нужен просто OpenOffice и функция в модуле шаблона: find / -name '*.xls' -exec echo soffice -invisible "\"macro:///Standard.Module1.SaveAsCSV($pwd/{})\"" \; ' RunAS soffice -invisible "macro:///Standard.Module1.SaveAsCSV(c:\sample.xls)" Sub SaveAsCSV( cFile ) Dim oDoc as Object cURL = ConvertToURL( cFile ) ' Open file Dim oarg(1) As New com.sun.star.beans.PropertyValue oarg(0).Name = "FilterName" 'oarg(0).Value = "Text - txt - csv (StarCalc)" oarg(0).Value = "MS Excel 97" 'oarg(1).Name = "FilterOptions" 'oarg(1).Value = "9,34,76,1" 'oarg(2).Name = "Hidden" 'oarg(2).Value = True Set oDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", 0, oarg) ' Generate file name cFile = Left( cFile, Len( cFile ) - 4 ) + ".csv" cURL = ConvertToURL( cFile ) ' Save the document using a filter. Dim args(1) as New com.sun.star.beans.PropertyValue args(0).Name = "FilterName" args(0).Value = "Text - txt - csv (StarCalc)" args(1).Name = "FilterOptions" args(1).Value = "44,34,76,1,,0" oDoc.storeToURL( cURL, args ) oDoc.Close( True ) End Sub В принципе всё то же самое можно сделать из консоли в одну строку: libreoffice --headless --convert-to csv:"Text - txt - csv (StarCalc)":44,34,76 --outdir ../ *.xlsx
Linux/Windows Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor