EXCELでCSVファイルを読み込んだ際の文字化け対処法

小ネタ

PythonスクリプトやEditorでcsvファイルを作成しExcelで読み込んだ際に、うまく解釈されないケースが出てきた。

いくつかパターンと原因があったので対処方法をメモ

文字コード

Windows製なのか、日本語OSだからなのかExcelでは文字コードをデフォルトだとShift-JISで解釈される。

一方で、スクリプトで直接記述やVSCode等のEditorでcsvを作成すると、UTF-8で作成されるケースが多い。
UTF-8でエンコードした状態だとShift-JISでは日本語は文字化けして解釈される。

Shift-JISにエンコードしなおしてもいいが、Excel上で大抵の文字コードはデコードできるので、Excel側で対応する。

1., Excel上で「ファイル」=>「インポート」を選択

Macの場合、デフォルトでは「Japanese (Mac OS )」となっており、プレビューをみても文字化けされている。

2., 元のファイルを「UTF-8」に変更する

文字化けが解消された。

改行コード

文字化けを解消しても以下のエラーが表示され正しくインポートできないケースがでてきた。

このテキストファイルのデータは、1 つのワークシートに入りきりません。

Excelの改行フォーマットがCRLFのため、他のフォーマット(LF)だと正しく解釈ができなくなるらしい。

これはExcel側で対応できないのでEditor側で対応する。

1., 改行フォーマットを確認する

大抵のEditorはファイルを読み込むと改行フォーマットがわかる。

VSCodeだと下部に表示。

2., 改行フォーマットを変更

これも大抵のEditorでは改行フォーマットをクリックすると選択できるので、CRLFに変更し保存。

Excelで読み込むと文字化けが解消された。

その他

LFは\n、CRLFは\r\nでコーディングされているので、直接ファイルの中身を置換してもいい気がする。

ExcelだとCRLFだが、LFで解釈するケースが多い。
改行フォーマットをLFにするかCRLFにするかは選ぶのは悩ましい。

コメント

タイトルとURLをコピーしました