エクセルで作成したCSVアップロードでエラー
複数の『商品カテゴリID』と『タグID』のある商品CSVをエクセルで作成し、EC-CUBE4.1.1の管理画面からアップロードしようとしたところ、以下のようなエラーが出て、アップロードに失敗しました。
エラーが発生しました。2行目以降の登録処理はキャンセルされました。
[ERROR] 2行目のタグ(ID)「15"」が存在しません。
[ERROR] 2行目のタグ(ID)「"7」が存在しません。
[ERROR] 2行目の商品カテゴリ(ID)「33"」が存在しません。
[ERROR] 2行目の商品カテゴリ(ID)「"7」が存在しません。
原因
カテゴリIDやタグIDを複数指定する場合、"7,15"
といった感じでダブクォーテーションで囲まないといけません。よって、エクセル上は"7,15"
と表示されているのですが、CSVをメモ帳や他のテキストエディタで開くと"""7,15"""
となっていました。
以下はエクセルでの入力画面。
メモ帳で開くと、ダブルクォーテーションが3つ連続していました。これがエラーの原因です。
恐らく、書式が「文字列」になっている部分は「カンマ」があるとCSVの列が崩れないよう、自動的にダブルクォーテーションが追加されるようになっているみたいですね。更にダブルクォーテーションがあると、エスケープの意味でダブルクォーテーションをダブルクォーテーションで囲うようになるんだと思います。
これを修正すると正常にアップロードできるようになります。
回避策
エクセルで編集する場合、『商品カテゴリID』と『タグID』の列は書式を「文字列」にして「"」無しにすれば"7,15"
のようにCSV出力できます。
メモ帳でCSVを開いてみると、エクセルではダブルクォーテーションを付けていないのに、ちゃんとダブルクォーテーションが一つ付いていました。
無事アップロード完了
CSVを修正してアップロードすれば、以下のように成功するはずです。
CSVファイルをアップロードしました。
[SUCCESS] 〇〇〇~〇〇〇行目を登録しました。