バージョン選択

フォーラム

メニュー

オンライン状況

44 人のユーザが現在オンラインです。 (25 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 44
もっと...

サイト内検索

質問 > 管理機能 > 商品登録CSVで文字が消える

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
atsu
投稿日時: 2014/5/26 14:34
対応状況: −−−
一人前
登録日: 2008/5/29
居住地:
投稿: 81
Re: 商品登録CSVで文字が消える
seasoftさん
ありがとうございます。


環境は下記の通りです。よろしくお願いします。

[EC-CUBE] 2.13.1
[レンタルサーバ] WADAXサーバ
[OS] CentOS 6
[PHP] PHP 5.3系
[データベース] PostgreSQL8.4系(UTF-8)
[WEBサーバ] apache2.2系
atsu
投稿日時: 2014/5/26 14:36
対応状況: −−−
一人前
登録日: 2008/5/29
居住地:
投稿: 81
Re: 商品登録CSVで文字が消える
nanasessさん
情報ありがとうございます。

私のスキルではわかりかねますが、調べみます。
chaco2008
投稿日時: 2015/10/28 21:13
対応状況: −−−
半人前
登録日: 2015/10/24
居住地:
投稿: 23
Re: 商品登録CSVで文字が消える
はじめまして。

実は、スレ主様と全く同じエラーが起きておりまして、
環境など確認させて頂きました所、
私とほぼ酷似しております。

EC-CUBE 2.13.3
サーバーOS Linux wx20.wadax.ne.jp 2.6.32-573.7.1.el6.x86_64 #1 SMP Tue Sep 22 22:00:00 UTC 2015 x86_64
DBサーバー PostgreSQL 8.4.20
WEBサーバー Apache
PHP 5.3.3
OS windows8.1


この、ダブルクオーテーションで囲わないとCSV登録時に半角英数字前の日本語が消えるという問題は、既に解決出来たのでしょうか?とても気になっています。

もし解決法がございましたら、教えていただきたいと思っております。

一昨日より格闘しているのですが、一向に解決する兆しが見えません。どうか、宜しくお願い致します。
chaco2008
投稿日時: 2015/10/31 16:48
対応状況: −−−
半人前
登録日: 2015/10/24
居住地:
投稿: 23
Re: 商品登録CSVで文字が消える
自己解決というか、原因は分かりましたので、簡単に報告致します。

尚、私の環境(ver2.13系、WADAXサーバー使用)限定での現象かもしれませんので、


いくつかポイントはあるのですが、まずEC CUBEからCSVを出力すると、改行の無いテキストデータはダブルクオーテーションで「囲われずに」出力されます。

そして、EC CUBEに「日本語から始まるテキストデータ」をCSVで入力する場合、ダブルクオーテーションで囲われていないと、文頭〜半角英数テキストまでの部分が消えてしまいます。全て日本語のデータであれば、全て消えてしまいます。

なので、例えば商品名が「テストtestテスト」という商品を、CSV出力して、未編集で入力した場合、商品名が「testテスト」となってしまいます。「テスト」という商品名のデータを出力→入力すると、商品名がありませんというエラーになります。

また、「改行の無いテキストデータはダブルクオーテーションで囲われずに出力」という仕様は、EC CUBEだけでなく、エクセルで編集した場合や、キャッサバなどのCSVエディタで編集した場合も同じで、今の所手動でダブルクオーテーションをつけられるツールはメモ帳しか見つけられておりません。

なので、メモ帳でダブルクオーテーションをつけて保存し、そのCSVを他のツールで開き保存すると、ダブルクオーテーションが消えます。

【結論】

エクセルやCSVエディタなどでデータを編集して一括でUPという作業は、私の環境では今の所不可能だという結論に達しました。

私は、ファイルメーカーというソフトで、商品のスペックや説明文等をデータベース化し、それをCSVで出力し登録を行っているのですが、この「ファイルメーカーで出力したCSV」に関しては、改行の無いテキストもちゃんとダブルクオーテーションで囲われて出力されるので、問題なく作業できます。

例えば一斉に価格を変更するような場合も、EC CUBEからCSVを出力して、それを編集するのではなく、ファイルメーカー側でデータを作成してアップすれば問題ありません。

EC CUBEで自動生成される商品IDなどに関しては、まずはファイルメーカで「商品ID」などを空欄にしたCSVを作りアップロードし、商品を新規登録します。

その後、EC CUBEからCSVを出力させると、自動生成された商品IDなどが取り出せるので、それをファイルメーカーに商品コードをKeyにインポート。そうすれば、既存商品の更新等も自由に行えます。

つまり、独自で商品マスターのような仕組みを用意出来ない場合は、このCSVアップ機能は実質使用不可能かと思われます(私の環境の場合は)


以上です。このページはアクセスが3000を超えており、ハマっている人が多い問題なのかと推測します。今後このページを見た人が、何かしら参考になれば幸いです。

ikemoto
投稿日時: 2015/10/31 22:05
対応状況: −−−
一人前
登録日: 2015/10/2
居住地:
投稿: 79
Re: 商品登録CSVで文字が消える
追加情報として参考になれば…

ダブルクォーテーションを保持したままCSV出力するのは、ファイルメーカー以外にも、Microsoft Accessのエクスポート機能でも可能です。

Accessやファイルメーカーを購入せずになんとかしたいなら
MySQLやPostgreSQLなどのデータベースに一旦インポートして加工⇒出力するという方法であれば、heidisqlなどのデータベースクライアントツールから区切り文字など任意に指定して出せる機能があります。
ちょっと手間ではありますが。

エクセルの場合、エクセル側が勝手に色々やらかしてくれるので、
私はインポート用のCSVを作る時やCSV出力を開くとき、
あまりExcelは使わない派です。
読込時でさえ、きちんと設定せずに開くと
 "012"⇒12
  "Apr-1"⇒日付の4/1と解釈してしまう
…などになり、これを上書き保存すると…。

昔どうしてもエクセルでカンマ区切り+ダブルクォーテーション指定のCSVファイルを読み込んで、同じ体裁で出力する必要があったときには、

1:csvの拡張子をtxtにして読込
2:ウィザードが起動するのでカンマ区切り、文字列囲み指定
3:列のデータ形式を全て「文字列」にしてOK
4:加工
5:タブ区切りテキストで保存
6:タブをvbScriptで","に置き換え、行の先頭と末尾に"を付与
7:拡張子をcsvにする

…という面倒な手順を踏まなければ
「ダブルクォーテーション付きカンマ区切りテキスト」
が実現できませんでした。
素で開くと、012⇒12になってしまうので3の手順が必要だし、
保存の時はウィザードが出てくれないから5〜7の手順にするしかない。
5〜7はエクセルマクロで実現してもよいけれど。

エクセルを使用する場合は、出来ないことはないけど
標準機能だけでは無理(何か抜け道があるなら知りたいです…)。
他のツールでも、ダブルクォーテーションを指定した読込・書き出しが出来るものを使用しないと…ということだと思います。
« 1 (2)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は64,558名です
総投稿数は97,284件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2494
4
nanasess
2089
5
umebius
1651
6
yuh
1612
7
red
1411
8
h_tanaka
1029
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.