例えば、電話番号などは"03"や"0120"など0で始まります。
これをEC-CUBEのCSVで書きだすと当然"03"、"0120"として書きだされますが、Excelが「このデータは数字だな」と思うと頭の"0"が消えて "3"や"120"として判断されてしまいます。
そうなると、そのCSVを元に編集したファイルを再度アップロードしたり、
他のシステムに読み込ませようとしすると不具合がでてしまうでしょう。
この場合、Excelを使わずテキストエディタで編集すれば問題ないのですが、
実質的にExcelを使わずに編集というのは考えにくいです。
そこで今回は回避する方法を2つご紹介します。
Excelを先に開いて、データのインポート経由で読み込む
- まず、先にエクセルを開き、[データ]メニュー→[外部データの取り込み]→[テキストファイルのインポート]でファイル選択画面が開きます。
- ファイルの種類で[すべてのファイル]かCSVを選択し、読み込みたいファイルを指定します。
- テキストファイルウィザードで、[カンマやタブなどの・・・]を選択します。→[次へ進む]ボタンをクリック!
- 左上部[区切り文字]に[カンマ]を選択します。→[次へ進む]ボタンをクリック!
- 数値扱いしたくない(頭の0が取れてしまうフィールド)を選択し、[G/標準]→[文字列]に変更します。
CSV専用エディタを利用する
上記のインポートの方法だとエクセルでも正常に読み込めるようになりますが、なんだかものすごく面倒な作業です。できれば読み込んだ瞬間にCSVデータをそのまま読み込んでくれる方がありがたいですよね。
そういう場合はCSV専用エディタを使いましょう(フリーソフトです)。
表計算やマクロ機能を備えるCSVエディター「Cassava Editor」
多機能ながら汎用的に利用できるオーソドックスなCSVエディター
http://www.forest.impress.co.jp/article/2008/01/10/cassavaeditor.html
受注件数が多いサイトではCSVでの更新が必須です。こういったツールを使いこなすのも、受注時にかかる時間のロス(ボトルネック)を解消する手助けとなりそうです。
それでもやっぱりExcelでどうにかしたい場合
csvファイルをクリックしたらエクセルが開いて、しかも0から始まる郵便番号なども文字列として認識させたい場合は、Excel限定となりますが以下のようなテクニックもあります。
データをダブルクォーテーション(")で囲み、さらにイコール(=)をつける
例えばデータ2が先頭に0を含むデータだとすると、
データ1,
="データ2",データ3,・・・・
こんな感じです。これをプログラム側で出るようにカスタマイズすればOKです。
(すみませんが、そのあたりの詳細は今回は割愛させて頂きます)