次の方法を使用してExcelファイルをCSVに変換できます。
$ libreoffice --convert-to csv --headless --outdir dir file.xlsx
すべてがうまくいくようです。ところで、エンコーディング設定に奇妙な点があります。 UTF-8 mdash(—)の代わりにLibreOffice Calcで手動で「別名で保存」すると、\ 227(�)が表示されます。使用文書CSVの内容に「非ISO拡張ASCIIテキスト、行長」が表示されます。したがって、2つの質問があります。
- ここで何が起こっているのでしょうか?
- libreofficeにUTF-8に変換するように指示するにはどうすればよいですか?
変換する特定のファイルは次のとおりです。ここ。
答え1
明らかに、LibreOfficeはデフォルトでISO-8859-1を使用しようとするので、問題が発生します。
このバグレポートに答えてください。--infilter
、新しいパラメータが追加されました。次のコマンドはU+2014ダッシュ:
libreoffice --convert-to csv --infilter=CSV:44,34,76,1 --headless --outdir dir file.xlsx
私はこれをLO 5.0.3.2でテストしました。バグレポートによると、このオプションを含む最初のバージョンはLO 4.4のようです。
答え2
試してみてください。
$ libreoffice --convert-to \
> csv:"Text - txt - csv (StarCalc)":"44,34,0,1,,0" \
> --headless --outdir dir file.xlsx
ここ、非常に詳細なヘルプがあります。