Excelで先頭が「ID」のCSVを開こうとするとSYLKファイルだとエラーが出る事象の原因と対策
ExcelでCSVファイルを開こうとしたときに、実際に拡張子が示す形式ではない、SYLKファイルであることを確認したが読み込めないとエラーが出た場合の対処法です。
ExcelはCSVファイルの取り扱いがヘタなので、インストール時にCSVファイルの拡張子に自身を割り当てるのをやめたほうがいいんじゃないかと思います。
結論として、Excelの仕様として、ファイルの先頭に「ID」というテキストがあるファイルはSYLKファイルと認識されるようです。SYLKファイルはMultiplanというMicrosoftがかつて開発していた表計算ソフトのファイル形式です。
先頭がIDとなっているCSVファイルを開こうとすると、次のようなエラーが出力されます。
開こうとしているファイル ‘ファイル名.csv’ は、実際にはその拡張子が示すファイル形式ではありません。このファイルを開く前に、ファイルが破損していないこと、信頼できる発行元からのファイルであることを確認してください。ファイルを今すぐ開きますか?
[はい(Y)] [いいえ(N)] [ヘルプ(H)]
そのまま [はい] をクリックすると次のメッセージが表示されます。
Excel は ‘ファイル名.csv’ が SYLK ファイルであることを確認しましたが、読み込むことができません。ファイルにエラーが含まれるか、SYLK ファイル形式でない可能性があります。異なるファイル形式でそのファイルを開くには、[OK] をクリックしてください。
[OK] [キャンセル]
ここで [OK] をクリックするとようやくファイルが開けます。
先のリンクでSYLKファイルを紹介したIT用語辞典 e-Wordsによると、
ファイルの先頭が必ず「ID」という文字で始まるため、これをファイル形式がSYLKファイルであることの識別・同定に用いるソフトウェアがあり、たまたま先頭の要素が「ID」で始まるCSVファイルなどが誤認識される不具合が報告されている。
だそうで、ちょうどExcelがこれにあたるようです。
対策として先頭のIDを別の名前に変えるかIDをダブルクォーテーションで囲むとうまく動作します。