Tableplus という SQL クライアントソフトを使用しているのですが、とあるテーブルの内容を CSV に変換するという作業がありました。
幸い、Tableplus ではテーブルを右クリックして Export できるので、CSV として出力したのですが Mac の Excel で色々と問題がありました。
Excel for Mac での問題
文字化けする
エクスポートした CSV をそのまま Excel で開こうとすると、おそらく文字化けます。どうやら Excel で開いたときに文字コードが Japanese(Mac OS)
となっており、ファイルの文字コードと同じものを選ぶ必要がありそうです。
今回のファイルは UTF-8(Unicode) だったのでそちらに変更したところ日本語になりました。残りは、CSV なので区切り文字をカンマとし、文字列として読み込みます。
改行がおかしい
先ほどの設定で読み込んだところ、
このテキストファイルのデータは、1 つのワークシートに入りきりません。
とアラートが表示され、シートに1行しか追加されませんでした。よく見て見ると、改行のあるところでデータが切れているようです。
改行コードを確認
Excel は \r\n
を改行としてみなすので、\n
の改行が入っているとおかしくなるようです。他のテキストエディタなどを開いて、改行コードを全て \r\n
に置換します。
テキストエディタの Atom では右下に改行コードが表示されおり、クリックすると変更することができます。LF
もしくは Mixed
(改行コードが入り混じった状態)になっていたら、今回ばかりは CRLF
に変換します。
でもやっぱり改行がおかしい
ダメなものはダメということで しょうか。データは入ったものの、セル内の改行がうまく反映されず、改行の次の文字列から下の行にデータが入ってしまい、構造がめちゃくちゃになってしまいました。
文字列は""
で囲むことによって、その中の改行はそのセルの中だけで行われると思っていんですが、どうも様子がおかしいです。そもそも、UTF-8 に変更する前はセル内で改行できていたので、UTF-8 に変換していることが何か影響しているのか…?
解決策(根本的には解決してません)
google spreadsheet を使う
原因が分からず、最終的に Google スプレッドシートを使いインポートしてみると綺麗にデータがインポートできました。もしかしたら、文字コードを Shift-JIS
に変換してから Excel で読み込めばうまく行くのかもしれませんが、、めんどくさい。