Excel → CSV 変換ツールを作ってみた
先日 Zenn に
という記事を書いたが,同等の機能の汎用ツールを作ってみた。
CLI ツールで,機能としては Excel データの行・列の情報を単純に読み込んで CSV 形式に変換するだけの簡単なお仕事。 Pure Go で書かれているので Excel がない環境(たとえば Linux)でも問題なく動く。
$ xls2csv -h
Export CSV text from Excel data.
Usage:
xls2csv [flags] <Excel file>
Flags:
--debug for debug
-h, --help help for xls2csv
-o, --output string path of output CSV file
-p, --password string password in Excel file
-s, --sheet string sheet name in Excel file
-t, --tsv output with TSV format
-v, --version output version of xls2csv
-w, --win-newline output with CRLF newline
$ xls2csv conv/testdata/test-pw.xlsx -p passwd
名前,年齢
Alice,18
Bob,19
太郎,20
花子,21
このようにパスワードロックされている Excel ファイルも読み込める1。
なお Excelize パッケージを使っているので Excel 2007 までの古い形式(拡張子が .xls
のファイル)には対応していない。
あしからず。
文字エンコードは UTF-8 で改行コードは LF の CSV 形式のテキストを標準出力に返す。
先頭の BOM は付かない(付ける気もない)。
なお改行コードは -w
オプションで CRLF に変更可能である。
文字エンコードを変える機能はないので, Shift-JIS とかにする必要があるなら拙作の gnkf との組み合わせでどうぞ。
機能がニッチ過ぎるので需要はないだろうけど,まっ,自分用ということで(笑)
Excelize パッケージのドキュメントって日本語版もあるんだねぇ。
いろいろと遊べそうである。
参考図書
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。
-
Shell のプロンプトやバッチファイルに直接パスワードを記述するのはオススメできないが, Excel のパスワード・ロックなんてザルだからなぁ ↩︎