やるきなし

2020/09/27 18:10 / xls(x) to csv using libreoffice

いつも忘れるのでメモ.以下で input.xlsxinput.csv に変換できる.環境は Debian GNU/Linux の libreoffice package.

% libreoffice --headless --convert-to csv:"Text - txt - csv (StarCalc)":44,34,76 --outdir . input.xlsx

44,34,76 の意味は

% libreoffice --headless --convert-to csv:"Text - txt - csv (StarCalc)" --outdir . input.xlsx

のように Default でも input.csv は生成されるが日本語が全て ? になってしまう.ということで Character Set の指定が必要で,3つの Token を与える.詳細は https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options のとおり.

追記 (2021/8/7)

csv (UTF-8)から xlsx への変換も同様に可能で,例えば以下.

% libreoffice --headless --convert-to xlsx --infilter="CSV:44,34,76" --outdir . input.csv

なお,MS Excel で CSV を直接開くには,もとの CSV の文字コードが Shift_JIS でなければならないはずで,UTF-8 の CSV を MS Excel に読み込むには「データ→テキストまたはCSVから」でインポートする必要がある.

Related articles