Excel → CSV 変換ツールを作ってみた

no extension

先日 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 パッケージのドキュメントって日本語版もあるんだねぇ。

いろいろと遊べそうである。

参考図書

photo
プログラミング言語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 言語の教科書と言ってもいいだろう。

reviewed by Spiegel on 2016-07-13 (powered by PA-APIv5)


  1. Shell のプロンプトやバッチファイルに直接パスワードを記述するのはオススメできないが, Excel のパスワード・ロックなんてザルだからなぁ ↩︎