patorashのブログ

方向性はまだない

RubyでUTF-8のCSVをExcelに変換するコマンドを作った

お客様や社内の他の部署のメンバーとファイルのやりとりをすることってあると思うのですが、いつも大変なのが、CSVファイル。HerokuのDataclipsがバージョンアップされてExcel形式でダウンロードできなくなったので、仕方なくCSVでダウンロードして、Excel起動してインポートでそのCSVを取り込んで…ってやっていたのですが、ファイル数が多くなると、とても苦痛です。

それができるようなコマンドやサービスなりを探そうとしたのですが、いいのがなかったので、もう面倒だから自分でgemを作りました。

rubygems.org

実行コマンド付きのgemなので、CLIで利用可能です。

CLIで利用

$ csv2excel -f foo.csv # => foo.xlsxが作成される
$ csv2excel -f bar/baz.csv # => bar/baz.xlsxが作成される
$ csv2excel -d ./bar # => barディレクトリ内の全てのcsvファイルからxlsxファイルを作成する

Rubyのコードで利用

CSVクラスをオープンクラスしてメソッドを追加したので、利用も簡単。

require 'csv2excel'
CSV.to_xlsx(file: 'foo.csv') # => foo.xlsxが作成される
CSV.to_xlsx(dir: './bar') # => barディレクトリ内の全てのcsvファイルからxlsxファイルを作成する

まとめ

ほとんどgem axlsxのおかげです。でも我ながらめっちゃ便利で重宝しています。