DBから取ってきたデータをCSVで吐きたい、なんてよくあるケースだと思います。
で、まあ今回お仕事でそんな機会があって、実装してたんですけど。。。
なんと吐いたCSVをExcelで開こうとすると、警告でまくり。テキストで見ても問題なし、ちゃんと期待通り。
ちなみに吐いたCSVのフォーマットは
ID,カラム1,カラム2
1,column11,column12
2,column21,column22
ご存知の方はここで「あー」って思われるでしょうね。
原因
Excelの仕様上、最初の要素が 半角のID だと、SYLKというファイルに勘違いされちゃうみたいです。
refs: http://support.microsoft.com/kb/323626/ja
SYLKって何よ? って方はこれ参照
refs: http://www.sophia-it.com/content/SYLK
回避方法
いくつか方法があって、
- ダブルクォートで括る
- IDを小文字にする
- IDを全角にする
- そもそもIDを別の文字に変える
だそうです。