研究所ロゴ しーえすぶいふぁいるのへんしゅう(じょうきゅうへん)

CSVファイルの編集(上級編)

CSVをカンタンに編集するには?

 なんと言ってもExcelで編集するのが一番楽ですが、いろいろなソフトも出回っています。VecterWindows95/98/Me>ビジネス>データベースなどで入手できます。
 残念ながら、セル内の改行に対応したアプリケーションは聞いたことがありませんが…。

CSVをテキストとして編集するには?

※こちらの説明は上級者向けです。なるべく上のフリーソフトをお勧めします。
CSVデータはExcelを使わなくても編集することができます。
Windowsなら「メモ帳」、Macなら「シンプルテキスト」などを使って編集してください。

note Microsoft Word、一太郎、クラリスワークスなどのワープロソフトでは編集できません。

ExcelのCSV形式は、以下の法則によって成り立っています。
つまり、この法則を守ればテキストエディタでデータを作ることが出来ます。

法則1.改行とカンマで行とセルを区切っている。
法則2.セル内のデータが以下の3つのどれかを含んでいる場合、セル全体をダブルコーテーションで囲む。
ダブルコーテーション( " )、カンマ( , )、改行(  )
法則3.セル内のデータに含まれるダブルコーテーションは、それを二つのダブルコーテーションに置換する。

それでは、各法則を詳しく見ていきましょう。

法則1.改行とカンマで行とセルを区切っている。
これは、例えば以下のようにデータがある時、セルとセルの区切りにはカンマを、行と行の区切りには改行を使っているということです。簡単ですね。

表計算データCSVデータ

ABC
1Aあいうえお
2Kかきくけこ
3Sさしすせそ
4Tたちつてと
5Nなにぬねの

↑これを「テキスト文書」として保存し、
Excelで開くと、ちゃんと左のような表の形式になっています。
表計算データCSVデータ

AB
1http://www.yodobashi.com/ヨドバシカメラ
2http://www.yamada-denki.jp/ヤマダ電機
3http://www.ishimaru.co.jp/石丸電気

★良くある間違い
以下のようにカンマを揃えれば、データが見やすくなります。
しかし、これは間違いです。こうすると間に入れたスペースまでデータだと見なしてしまいます。
残念ですが、以下のように揃えて書いてはいけません。



法則2.セル内のデータが以下の3つのどれかを含んでいる場合、セル全体をダブルコーテーションで囲む。
ダブルコーテーション( " )、カンマ( , )、改行(  )

たとえば以下の様なデータのCSVを作ってみましょう。
表計算データCSVデータ

AB
1これはエーです。→(A)
2これはビーです。→(B)
3これはシャープです。→(#)
4これはカンマです。→(,)
5これは改行です。→
)
このCSVデータをExcelで開くと、以下のようになります。

ABC
1これはエーです。→(A)
2これはビーです。→(B)
3これはシャープです。→(#)
4これはカンマです。→
5これは改行です。→
6)
おやおや?? カンマが消えていたり、E行のうしろにカッコがなかったり、なにかおかしいですね。
これは、法則2を守らなかった(ダブルコーテーションで囲んでいなかった)からデータが壊れてしまったのです。

この場合、セルB5はカンマを、セルB6は改行を含んでいますから、そういうセルはダブルコーテーションで囲まなければいけません。
正しくは、以下のように書きましょう。
(,)"(,)"
(
)
"(
)"

これで、Excelでも正しく読み込むことが出来ます。

→Excelで開くと改行の所に変な点が付いていますが、削除してもかまいませんし、気にしなくてもOKです。

法則3.セル内のデータに含まれるダブルコーテーションは、それを二つのダブルコーテーションに置換する。

次は以下のデータを読み込んでみましょう。
おやおや、最後の行だけ、またデータが壊れていますね。
ダブルコーテーションで囲んであるのに、なぜ壊れているのでしょうか。


実は、セルのデータに含まれるダブルコーテーションは、それを二つのダブルコーテーションに置換する必要があります。
それでは、やってみましょう。
下の例では、最後の行のダブルコーテーションを二つに増やしてあります。

これを読み込んでみましょう。今度はちゃんと読み込まれましたね。


ABC
1これはエーです。→(A)
2これはビーです。→(B)
4これはダブルコーテーションです。→(")

HTMLタグを書く時は、ダブルコーテーションの数に注意して下さい。
例えば以下のCSVデータは間違っていますが、どこが間違っているかわかりますか?



セルはダブルコーテーションで囲まなければいけません。そして、ダブルコーテーションは二つに増やさなければいけません。
正しくは以下のように書きましょう。



正しいCSVデータが作れたかどうかは、可能なら実際にExcelに読み込ませてチェックすることをお勧めします。
余談ですが、このページで言う「CSV形式」というのは、MicrosoftのExcel準拠のCSV形式です。
それ以外のCSV形式というのも存在します。ややこしいですね(笑)