2012-11-15 42 views
0

PHP 5.3,並使用PHPExcel庫1.7.8PHPExcel:1個XLS添加山坳基於共同的細胞

我願做VLOOKUP的phpexcel版本不同的XLS。我有1個目錄中的兩個xls文件已通過php上傳。

DIR/fileA.xls DIR/fileB.xls

我需要根據加入的fileA COL1值每行一個值帶來。

我有

fileA.xls

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

fileB.xls

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

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

我需要

創建一個新的fileC.xls或重寫的fileA .xls(appen d new'score COl?)

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

看起來很簡單,但我一直在使用Google搜索3小時,沒有任何東西。發現了一個類似的帖子,但這個人希望在一個單獨的工作表中輸入新的數據。我需要將'分數'作爲新文件或剛添加到fileA.xls的同一工作表中。只有1個工作表包含所有數據。

感謝任何幫助或鏈接,以幫助....

回答

0

加載這兩個工作簿fileA.xls和fileB.xls成不同PHPExcel對象$ objPHPExcelA和$ objPHPExcelB。 然後你可以使用addExternalSheet()方法來從工作表$ objPHPExcelB作爲一個新的工作表中的$ objPHPExcelA複製

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

那麼你可以使用你的新列的實際VLOOKUP()公式。

另一種方法是像上面那樣加載兩個工作簿,遍歷$ objPHPExcelA中的行,讀取emp_no列;然後循環遍歷$ objPHPExcelB中的emp_no列,直到找到匹配項,然後從該行的$ objPHPExcelB中的score列中讀取值以存儲在$ objPHPExcelA中的新列中;重複,直到所有員工都得到更新。