UTF8 の CSV は便利
- 多言語やさまざまな記号が扱える
- 特にうちのような多言語を扱う研究所では重要
- プログラムで処理しやすい
- 現代的な言語なら UTF8 が前提だし、CSV は仕様がシンプルなのでライブラリも安定している
- Excel で開くことができるので、プログラムがいじれない人でも便利に閲覧、編集できる。
でも、Excel に読み込むときには注意が必要
エクセルが入っているコンピュータでは、CSV ファイルをそのまま開くこともできます。
特にアルファベットのデータだと、一見うまく開けたように見えますが、ところどころ文字化けしてしまっていたり、データの読み込みに失敗して件数が一致しなかったりします。
そこでUTF8のcsvをExcelに正しく読み込む方法を紹介します。
UTF8 の CSV を Excel に読み込む正しい方法
データ>外部データの取り込み>テキストファイル からファイルを選択します。
「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」にチェックを入れて、「元のファイル」のエンコードを UTF8 に(アルファベット順に並んでいるので下の方にあります)。
「区切り文字」をカンマに、データのプレビューで適切に区切られていることをチェックして、次へ。
データ形式はそのままでもいいです。数字が勝手に日付に解釈されたりして困るようでしたら、全部「文字列」として解釈させておくのが良いと思います。これで、読み込めました。
Excel から UTF8 の CSV に戻す方法
今のところ Excel では UTF8 の CSV を直接出力することができません。Python3 をインストールした環境下で、dilshod/xlsx2csvを使って元に戻さなければなりません。
(2016/4/15追記 sheet delimiter, line terminator and output encoding supported by cm3 · Pull Request #79 · dilshod/xlsx2csv · GitHub で本家にマージされたので、最新版は dilshod さんの方です)
そこにある xlsx2csv.py をダウンロードしてきて、
python xlsx2csv.py -l "\n" [エクセルファイル名] [CSVファイル名]
をコマンドラインから実行すれば可能です。
参考
- Python - コマンドラインで XLSX を CSV に変換する - Qiita xlsx2csv は一応 pip できるけど、こういうふうに改変して使いまわすようなものだよね。
- ExcelからCSVファイルへの変換と文字化けさせない保存方法 | Web Labs これやっても普通に ShiftJIS で保存されてしまいました。
- Excel で UTF‐8 の CSV を作成したい - マイクロソフト コミュニティ なんでいまだに Excel が正式対応していないのか謎
- ExcelでUTF-8エンコーディングされたCSVファイルを開く方法 - 大人になったら肺呼吸 ここのコメント欄でこの方法を知った。
- 文字コードと改行コードとCSVファイル(Excel/VBA) 参考というか非参考。なんだこの罵詈雑言だけ並び立ててなんの役にも立たないサイトはwww それだけ賢しいのだからさぞいいツールを公開してくださっているだろう、大和田暁バリに悔しそうな顔をしてダウンロードさせていただこう、と思ったら肝心のツールも無いので罵詈雑言だけを浴びただけ。リンクを貼って上位に上げるのもムカつくところだが、ネタとして面白い領域に達してたのでリンクw
TODO
- 説明動画の公開
- 人文系のためのデータ処理(R や KH Coder でできるような処理を補完するような)シリーズで書き溜めて書籍化しようとかいう話が上がっているが、さて。