ブログリトライ

初心に戻って運営するブログです

csvファイルの拡張子は.txtにするとexcelに取込みやすい

色々なところでデータをエクスポートするために使われてるcsvですが、excelの入ってるwindows環境だと拡張子.csvexcelに関連付けられてしまうため、ファイルのアイコンをダブルクリックするとexcelが起動してきます。

これはこれで便利と言えば便利なんですが、

  • 指数表記になって文字化けしているように見える
  • 日付表記になって文字化けしているように見える
  • 0から始まる文字列の0が無視される

なんてトラブルは良くあると思います。

マイクロソフトからも先頭のゼロおよび大きい数値の保持 - Excelという文章が出ているんですが、ここに出てくる解決方法もエクスポートしてきたcsvに対しては微妙な感じで

  • 方法 1 データを加工する時に先頭のスペースを考慮しないといけないし、なんか気持ち悪い
  • 方法 2 今回は出力済みのcsvなので適用できない
  • 方法 3 初期表示状態ではアポストロフィ(シングルクォート)が表示されてしまう。一回セルを入力状態にすると表示されなくなりますが、全セルを一回入力状態にするのはかなり面倒

という欠点があります。

そもそもcsvexcel専用のファイル形式ではなく汎用的な形式なので、excelに取込むときはexcelの仕様にあわせて調整しないとうまく行かないと思うのですが、excelにはちゃんと「テキストファイルウィザード」という機能があるにも関わらず、拡張子.csvだとテキストファイルウィザードをすっ飛ばしてそれっぽく表示するというのがexcelの仕様のようです。

そこで、csvファイルの拡張子を.txtにして、excelのメニューから「ファイル」「開く」で出てくるダイアログから拡張しを.txtにしたcsvファイルを開くとテキストファイルウィザードのダイアログが表示され、表示形式などが設定できます。これで最初の方に出てきた問題は解決!

参考:


まとめると

  • csvexcel専用のファイルじゃない(つまりexcelの表示形式などは設定できない)
  • csvは「テキストファイルウィザード」で取込もう
  • csvファイルの拡張子は.csvだとウィザードがスルーするので.txtにしよう