2016-06-15 197 views
2

我試圖將目錄中的xls文件轉換爲使用soffice的csv格式。使用soffice命令行將xls轉換爲以分號分隔的csv

soffice --headless --convert-to csv * 

它給逗號分隔的版本(顯然)。現在我想得到分號分隔的csv。

我想用vim命令替換帶分號的逗號。

:%s/,/;/g 

但這是不正確的,因爲它取代了逗留在原始內容中的逗號。它必須從xls轉換爲csv時進行分隔。

如何用soffice命令行獲得分號分隔的csv?

+0

'soffice --convert-to csv:「Text - txt - csv(StarCalc)」:59,34,0,1,1 -outdir/some/path *'。有關更多詳細信息,請參見[wiki](https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options)。 – lcd047

+1

@ lcd047,_:「Text - txt - csv(StarCalc)」_用於過濾輸入文件,數字用於選擇編碼格式。 [wiki](https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options)中沒有選項來更改分隔符。 – Jarvis

+2

你真的嘗試過我提到的命令行嗎?再次閱讀[CSV過濾器的過濾器選項]一節(https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options#Filter_Options_for_the_CSV_Filter)。分隔符是第一個數字。 wiki中的'44'是逗號的(十進制)ASCII碼,而上面的'59'是分號的ASCII碼。 – lcd047

回答

2

最後,我得到了答案。添加output_filter_options就像一個魅力。

--convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files 

wiki link幫助。下面是我做的,

soffice --headless --convert-to csv:"Text - txt - csv (StarCalc)":59,34,0,1,1 *.xls 

注意:它與自由報辦公室4.3或更高版本。