我实际上是在使用 php 脚本来导入.ods
文件并将其转换为.csv
以便添加,最后将所有内容添加到 SQL 表中,但是当我上传多个工作表ods
文件时,它只转换第一个工作表。
要转换它,我使用命令(为了便于阅读,分成两行):
$ libreoffice4.2 --headless --invisible \
--convert-to csv /tmp/test.ods --outdir /tmp/
我如何处理其他工作表?
我遇到了同样的问题,我是这样解决的:
以这里的答案作为参考,我构建了这个 libreoffice 基本脚本:
REM ***** BASIC *****
Sub convertSheetsToCSVs
Dim fileProps(1) as new com.sun.star.beans.PropertyValue
sheets = ThisComponent.Sheets
fileProps(0).Name = "FilterName"
fileProps(0).Value = "Text - txt - csv (StarCalc)"
fileProps(1).Name = "FilterOptions"
fileProps(1).Value = "09,,22,1,,0,false,true"
'The previous line can be changed to modify filter options as explained in
'https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options#Filter_Options_for_the_CSV_Filter
folder = "file:///home/your_folder_path/"
i = 0
Do While sheets.Count > i
sheet = sheets.getByIndex(i)
cntrllr = ThisComponent.CurrentController
cntrllr.setActiveSheet(sheet)
sURL = folder & sheets.ElementNames(i) & ".csv"
ThisComponent.storeToURL(sURL, fileProps())
i = i + 1
Loop
End Sub
如果你想在控制台中做,肯定有办法,但我不知道怎么做。