Excelでcsvを開いたときに「SYLK:ファイル形式が正しくありません。」という警告が出る件
ちょっとハマった。。。
PHPでDBの取得結果をCSVーDLするスクリプトを書き、実際にDLして開いたところ「SYLK:ファイル形式が正しくありません。」という警告が出ました。
最初は、エンコードやらでなんかおかしなことになったか?と思ったんですが、警告が出るのはExcelで開いた時で、テキストエディタなどで開くと出ない。
ちょっと調べたところ、同様の問題について書いた記事がたくさん出てきました。
原因はExcelの仕様で、先頭セルの値が文字列の「ID」だとSYLK 形式のファイルと認識されてしまうとのこと。
https://support.microsoft.com/ja-jp/kb/215591
マイクロソフトのサポートページでは「開くことができない」とありますが、実際は警告が出るものの開けるようです。
解決方法としては、先頭に空白行を入れるか先頭セルの値を「ID」以外にすればOKとのことですが、DBレコードをCSV出力する機会は結構あると思いますし、さらにレコードの先頭カラムがIDであるケースも多いと思うので、過去にハマった人も多いんじゃないかな。。
今まで引っかからなかったのが不思議なくらいですw
ちなみに、今回は先頭セルを「ID」から「id」に変えたところ警告は出なくなりました。
こんな仕様があるとは想像もできんかったというお話でしたw