0

PHP 5.3 および PHPExcel ライブラリ 1.7.8 を使用

vlookup の phpexcel バージョンを実行したいと思います。PHP 経由でアップロードされた 1 つのディレクトリに 2 つの xls ファイルがあります。

dir/fileA.xls dir/fileB.xls

fileA col1 値の結合に基づいて、行ごとに 1 つの値を取り込む必要があります。

私は持っている

ファイルA.xls

===========================
emp_no.   fname     lname  
===========================
1     Sam       Smith
5     Lea       Crosby
7     Harlan    Myers
---------------------------

ファイルB.xls

===========================
test_number emp_no.   score  
===========================
1           1         98
16          5         64
14          7         76

---------------------------

私は欲しい

新しい fileC.xls を作成するか、fileA.xls を書き換えます (新しい 'score COl? を追加しますか?)

===========================
emp_no.   fname     lname    newCol_score 
===========================
1        Sam       Smith      98
5        Lea       Crosby     64
7        Harlan    Myers      76
---------------------------

とてもシンプルに見えますが、私は3時間グーグルで検索しましたが、何もありませんでした. 似たような投稿が 1 つ見つかりましたが、別のワークシートで新しいデータを求めていました。新しいファイルとして同じワークシートに取り込まれるか、fileA.xls に追加された「スコア」が必要です。すべてのデータを含む 1 つのワークシートのみ。

ヘルプやヘルプへのリンクをありがとう....

4

1 に答える 1

0

ワークブック fileA.xls と fileB.xls の両方を異なる PHPExcel オブジェクト $objPHPExcelA と $objPHPExcelB に読み込みます。次に、addExternalSheet() メソッドを使用して、$objPHPExcelB からワークシートを $objPHPExcelA の新しいシートとしてコピーできます。

$objPHPExcelA->addExternalSheet($objPHPExcelB->getActiveSheet());

次に、新しい列で実際の VLOOKUP() 式を使用できます。

別の方法として、上記のように両方のワークブックをロードし、$objPHPExcelA の行をループして emp_no 列を読み取ります。次に、$objPHPExcelB の emp_no 列を行ごとに一致が見つかるまでループし、$objPHPExcelB のその行のスコア列から値を読み取って、$objPHPExcelA の新しい列に格納します。すべての従業員が更新されるまで繰り返します。

于 2012-11-18T18:10:05.697 に答える