0

PHP 5.3 和使用 PHPExcel 库 1.7.8

我想做一个phpexcel版本的vlookup。我在 1 个目录中有两个 xls 文件,它们是通过 php 上传的。

目录/fileA.xls 目录/fileB.xls

我需要根据 fileA col1 值的连接为每行引入一个值。

我有

文件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 个小时,什么也没有。找到了一篇类似的帖子,但该人希望将新数据放在单独的工作表中。我需要在同一个工作表中引入“分数”作为新文件或只是附加到 fileA.xls。只有一张包含所有数据的工作表。

感谢您的任何帮助或帮助链接....

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 的该行中的 score 列中读取值以存储在 $objPHPExcelA 中的新列中;重复,直到所有员工都已更新。

于 2012-11-18T18:10:05.697 回答