使用Excel在PHP应用程序中进行核心分析?

Enj*_*jay 2 php phpexcel

我认为这确实是关于方法的问题。

我们有一个来自第三方的核心Excel电子表格,它提供了一些原始数据的复杂分析。原始数据直接从客户的第二个电子表格中获得。

我们希望创建一个基于Web服务器的自动化系统,在该系统中可以上传原始数据Excel文件并执行分析,并生成报告。

生成报告没有问题,但是在应用程序中实际使用核心Excel电子表格本身进行数学运算(例如,使用PHPExcel)是否有任何意义?还是最好的方法总是在代码中复制分析?

我们的想法是,分析(来自第三方)相当复杂,因此要在PHP中进行复制需要大量的挑选工作,其次,分析的某些部分通常会被第三方进行调整,这意味着新版本的定期向我们提供Excel。

我可以想象使用PHPExcel进行类似的操作,在内存中创建工作表并将原始数据合并为第二个工作表,然后读取计算出的结果,但这是现实的-太慢了吗-或根本就不起作用我在想什么?

任何想法将不胜感激。

Mar*_*ker 5

根据Excel公式的复杂性,使用PHPExcel的计算引擎可能是完全可行的,但是您需要提防一些潜在的“陷阱”。

  • 并非完全支持所有Excel函数(PHPExcel文档中提供了一个列表,但我认为现在支持356个函数中的316个)
  • BIFF(.xls)工作簿不支持分析工具包中的Excel函数。尽管它们将与OfficeOpenXML(xlsx)工作簿一起使用
  • 不支持用户定义的功能
  • 不支持宏和其他VB代码
  • 尚不支持数组公式(由于要在年底之前启动,因此这是计划重写计算引擎的重要部分)
  • 不支持单元格引用的R1C1格式

它相对较慢(这是需要重写的部分原因)。当然,您可以编写PHP代码来更有效地执行所需的公式,因为您可以根据自己的特定要求进行编码。PHPExcel是否会太慢?只有您可以确定“太慢”的实际含义。

请注意,通常最好提交大量的内存或耗时任务的请求以在Web服务器外部运行

另一方面,如果您的客户曾经更改过电子表格(并且您表示这很频繁),那么使用PHPExcel的内置计算引擎意味着它仍然可以正常工作,而自定义编写的代码则需要进行修改。正如您已经指出的那样,复杂的公式可能需要大量工作才能转换为PHP代码。而取消选择电子表格中的公式更改将特别困难。