PHPExcel:根据公共单元格将col从1 xls添加到不同的xls

时间:2012-11-15 06:22:44

标签: php phpexcel

PHP 5.3并使用PHPExcel Library 1.7.8

我想做一个phpeup的phpexcel版本。我在1 dir中有两个已通过php上传的xls文件。

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(追加新的'得分COl?)

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

似乎这么简单但我已经谷歌搜索了3个小时,没有。找到一个类似的帖子,但那个人想要在单独的工作表中的新数据。我需要在相同的工作表中引入“得分”作为新文件或仅附加到fileA.xls。只有1个包含所有数据的工作表。

感谢您提供任何帮助或帮助....

1 个答案:

答案 0 :(得分: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的新列中;重复,直到所有员工都得到更新。