CSVファイルを安全に確認する方法
はじめに
お客様や協力会社様から共有いただくデータで「.csv」でいただくことはありますでしょうか。
主に原稿や発注確認などでメールに添付されることが多いと思います。
この「.csv」はどんなアプリで確認しますか?
大抵はExcelのアイコンになっているのでダブルクリックしてExcelで確認してしまいます。
…それ、本当に大丈夫でしょうか? 特にお客様の原稿としていただいた場合、良かれと思いExcelで確認したあとに.xlsxで保存して共有したことありませんか?
実はその場合、中身が変わってしまっているかもしれません。
今回は安全に中身を確認する方法をご紹介します。
csvファイルとは
csvファイルとはExcelと同じく表組を表すファイルです。
行は改行で区切られていて、列の区切りは「,」(カンマ)で区切られます。
「”~”」で囲まれているのは「この間の「,」(カンマ)は列の区切りじゃないですよ」という意味です。「,」(カンマ)が使われていない場合は省く場合もあります。

上の画像はテキストエディタで確認した状態です。
こちらで確認した場合は正しく表示されていますが、やはりExcelと違って見づらい状態になっています。
どの列が対応しているかはこれではわかりにくいのでExcelやgoogleのspreadsheetsで開いたほうが勝手がいいと思いますがそこには難しい問題もあります。
Excelやspreadsheetsで確認した場合、その内容が変わってしまっている可能性があるかもしれません。
何が変わってしまうのか
それでは実際にExcelで開いてみましょう。
アイコンを見ますと、Excelで開けるような形になっています。
(windows環境によります。)

こちらがダブルクリックしてExcelで開いた状態です。
「注文ナンバー」、「ID」、「商品区分」、「住所2」など数値に関わる部分が変化(いわゆる文字化け)していますが「郵便番号」や文字に関わるところは大丈夫のようです。
これは、数値が入ったセルに対して「良かれ」として処理されているからです。

例えば
- ハイフンに繋いだ数値は、日付データとして処理される(例:「2106-05-08」→「2106/5/8」)
- 桁が大きい数値は「E+桁」みたいな数値になってしまう(例:「267111150006055」→「2.61711E+14」)
- 括弧付きの数値がマイナスの数になってしまう(例:「(1)」→「-1」)
- 住所の丁目・番・号が、なぜか日付に書き換えられてしまう(例:「1-1」→「1月1日」)
この例の他にも以下の状況がおきてしまいます。
- 0から始まる数値は最初の0が消えてしまう(例:「001」→「1」)
つまり数値をハイフンでつなげたり、括弧にくるんだり、0が前にある数値を「変換すべきもの」として自動で処理や整形してしまいます。その結果、知らない間に変化してしまっている場合があるのです。
これはExcelだけではなく、spreadsheetsでもこの文字化けや整形は起こり得ることです。
ではどうやって正しく安全に確認すればいいのでしょうか?
csv確認ツールのご紹介
前述しましたが、テキストエディタで確認すれば文字が変化することはありませんが非常に見づらいです。
Excelやspreadsheetsなどでも事前にセルの属性を「文字列(=文字として扱いなさい)」として定義づければいいのですがやはり手間や不安が残ります。
そこで表組みのように簡単に確認できるウェブツールをご紹介します。

サイトにある領域に確認したいファイルをドラッグ・アンド・ドロップします。
すると、ファイル名や詳細とともに、内容をテーブル形式で表示いたします。
加えて、左には「No.(ナンバー)」として表示させています。
これは行数を表示していますので、何行目にどの内容が入っているかを確認することができます。
こちらは先程のファイルになっています。
前述で指摘した箇所はテキストエディタで開いたままの表示で確認することができました。

またそれぞれ、「コピー」と「Excel保存」のボタンを設けました。
コピーはDTPソフトに対応できるようにセルをタブ区切り(tsv)としてクリップボードに格納いたします。

「Excel保存」は前述しましたセルを「文字列」とした上でエクセル保存をしたファイルをダウンロードします。
いずれの排出されるファイルにつきましては、あくまで自己責任のうえでご活用いただければと思います。また、こちらのウェブサイトには情報を取得または保存や格納するといった機能はありませんので安心してご利用ください。

デジタルイノベーショングループではこのような業務効率化の支援をさせていただいております。
同案件も含めて単純作業の自動化やデータ変換などでお困りでしたら、お気軽にご相談ください。