我需要将电子表格中的数据导入数据库。最初,我使用phpExcel将每个工作表导出为csv文件,但是只要有一个包含索引匹配函数的单元格,phpExcel就无法检索该单元格值。
= INDEX(Sheet 1中$ E $ 2:$ E $ 100中,MATCH(TRUE,EXACT(B16,工作表Sheet $ A $ 2:$ A $ 100),0))
然后我决定使用phpExcel的toArray(null,true,true,true)将数据直接从电子表格导出到数据库中,以将工作表加载到数组中。第二个参数($ calculateFormulas)为true,但是phpExcel仍然无法检索包含索引匹配函数的任何单元格的单元格值。
我在一篇文章中读到要谨慎使用$ objReader-> setReadDataOnly(true) - 我试了一下,但仍然没有运气。
一种解决方案是打开电子表格,复制每个工作表并粘贴特殊值作为值,但我认为toArray()中的$ calculateFormulas会这样做。解决方案不是很吸引人,因为我有大约50个电子表格,每个电子表格包含5个工作表,并且它们将定期进入:(
感激地收到任何建议。
答案 0 :(得分:0)
我有同样的问题(不久前),但无法直接用PHPExcel解决它。相反,我在Excel文件中编辑了单元格,将原始公式除以不同的单元格。
最初我在每个单元格中都有这个公式(在这个例子中是C13):
现在,我分为两部分(Q13和C13):
我甚至使用PHPExcel为C13编写了新内容:
似乎无法使用PHPExcel正确解析包含在一个单元格中的复杂公式。
我希望这会有所帮助。