役に立ちそうもないTips移転版

俺得なTipsを書き連ねるだけのブログ。

ExcelでCSVファイル地獄

 CSVファイルをExcelで読ませるといろいろと勝手な解釈をしてくれる。
 この「解釈」を制御(特定の列は文字列として解釈せよ、等)することができん(VBAヘルプではできるかのように書いてあるがそんなもん信用するほうが(ry))もんで、

数字の並び(コード番号)が数値扱いされて指数表記にされる

 これはまだかわいい方。書式に「#;#;#;@」としてやればとりあえず表示上指数表記は解除できる。(頭に「0」がつくコード体系だと「000..;」とかしてやらんといかんが)

住所の番地(「1−2−10」など)が日付扱いされる

 これは値自体が既にExcelの日付シリアル値にすげかえられてしまっているので手遅れ。書式いじったくらいではどうにもならんので泣きながら手作業で修正するよりない……はず。

 一般にこの辺を回避するためには、CSVファイルを.txtにリネームしてCSVの自動解釈をさせないようにする、というテクニックが知られているが、

CSVのフィールドに改行を含むデータは.txtだと一つのフィールドとして認識してくれない

ので、その手のデータは.txtとして読ませるとえらいことになる。(てゆーか扱いの違いが極端すぎ……)