バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

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

私のスキルではわかりかねますが、調べみます。
chaco2008
投稿日時: 2015/10/28 21:13
対応状況: −−−
半人前
登録日: 2015/10/24
居住地:
投稿: 25
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
居住地:
投稿: 25
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公式 Amazon Payプラグイン

統計情報

総メンバー数は88,838名です
総投稿数は109,985件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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