バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > エクセルデータ取込時のC列を追加したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
qwesa0
投稿日時: 2021/3/25 15:24
対応状況: −−−
半人前
登録日: 2021/3/24
居住地:
投稿: 12
エクセルデータ取込時のC列を追加したい
▼テンプレート
[EC-CUBE]3.0.16
[レンタルサーバ]AWS
[OS]centos7
[PHP]7.1.8
[ブラウザ]chrome
[データベース]postresql

管理機能のカスタマイズをしています。
エクセルファイルを取込する際にC列を追加しましたが、
取込ができない状態です。

$deliveryId = $data[2];は取込ができず
$deliveryId = 'A';にすると取込はできます。
$data[2]が何か問題があるようですが、よくわかりません。

error:Symfony\Component\Debug\Exception\ContextErrorException: Notice: Undefined offset: 2

ご教授いただけますと幸いです。
宜しくお願いいたします。

$data = $sheet->rangeToArray("A".$row_index.":B".$row_index);
からC列追加
$data = $sheet->rangeToArray("A".$row_index.":B".$row_index.":C".$row_index);

$deliveryId = $data[2];を追加

$reader = new XlsxReader();
                $spreadsheet = $reader->load($file->getRealPath());
                $sheet = $spreadsheet->setActiveSheetIndex(0);
                $count = 0;
                $errors = array();
                $datas = array();
                foreach ($sheet->getRowIterator(1) as $row_index => $row) {
                    // 1行目はヘッダー行なので飛ばす
                    if($row_index == 1){
                        continue;
                    }

                    $data = $sheet->rangeToArray("A".$row_index.":B".$row_index.":C".$row_index);

                    if(isset($data)){
                        $data = $data[0];
                        $datas[] = array_map('trim', $data);
                    } else {
                        return;
                    }
                }
                $spreadsheet->disconnectWorksheets();

                $app['orm.em']->getConnection()->setAutoCommit(true);
                foreach ($datas as $data) {
                    try {
                        if(!$app['orm.em']->getConnection()->isTransactionActive()){
                            $app['orm.em']->getConnection()->beginTransaction();
                        }

                        $orderId = $data[0];
                        $invoiceNo = $data[1];
                        $deliveryId = $data[2];
umebius
投稿日時: 2021/3/25 23:34
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: エクセルデータ取込時のC列を追加したい
Notice: Undefined offset: 2ですので、コードから見るに
$data[0]、$data[1]は存在するが、$data[2]が存在しないということです。
そう言った行がシートにないでしょうか?


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

qwesa0
投稿日時: 2021/3/26 10:42
対応状況: −−−
半人前
登録日: 2021/3/24
居住地:
投稿: 12
Re: エクセルデータ取込時のC列を追加したい
他のどころで解決できました。
ECCUBEよりphpの問題ですね。

検索するとそういう内容だったのですが、$data[2]は存在してました。

下の表記が問題だったようです。
$data = $sheet->rangeToArray("A".$row_index.":B".$row_index.":C".$row_index);


これで解決できました。
$data = $sheet->rangeToArray("A".$row_index.":C".$row_index);
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1279
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.