バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
qwesa0
投稿日時: 2021/3/25 15:24
対応状況: −−−
半人前
登録日: 2021/3/24
居住地:
投稿: 11
エクセルデータ取込時の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
居住地: 東京日本橋
投稿: 2000
Re: エクセルデータ取込時のC列を追加したい
Notice: Undefined offset: 2ですので、コードから見るに
$data[0]、$data[1]は存在するが、$data[2]が存在しないということです。
そう言った行がシートにないでしょうか?


----------------
EC-CUBE4系 カスタマイズ ECのプロがシステム急ぎの案件承ります。
EC-CUBE開発 リモートで働くエンジニア募集中

qwesa0
投稿日時: 2021/3/26 10:42
対応状況: −−−
半人前
登録日: 2021/3/24
居住地:
投稿: 11
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ペイメント

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

統計情報

総メンバー数は71,539名です
総投稿数は101,314件です

投稿数ランキング

1
seasoft
7333
2
468
2998
3
AMUAMU
2712
4
nanasess
2147
5
umebius
2000
6
yuh
1612
7
red
1449
8
h_tanaka
1080
9
tsuji
936
10
fukap
907
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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