在PHP中运行Excel公式

4

以下是客户的需求场景:客户想把一个Excel文件放在服务器上,然后从PHP表单中发送数据到这个文件中,运行其中的公式并获取结果。

我不知道这是否可行。如果可以,请指导我使用最好的PHP库或其他可能的解决方案。


将 xls 文件移植到 PHP + 2D 数据库怎么样?或者会有多个不同的文件,经常更新吗? - Joost
为什么不将 Excel 的逻辑应用于 PHP 文件,并将其输出为 Excel 表格? - Quicksilver
这是不可能的,因为我的客户所声称的逻辑将会经常发生变化。因此,我需要一个解决方案,能够获取公式并将其转换为 PHP 逻辑,同时一路上从 Excel 文件中获取所有数据(文件中单元格的不同值)。 - adam
你用 getCalculatedValue() 从 Excel 文件中收集了计算出来的值吗?如果是,能给我看一下吗? - Arshiva
2个回答

7
这是完全可能的:看看 PHPExcel 库,它具有一个内置计算引擎,用于处理大多数 Excel 公式。
在发布目录的 /Tests/ 目录中有一个示例,用于将 Excel 文件填充数据(在本例中来自表单输入),然后呈现该 Excel 文件中的公式以生成结果并在 Web 浏览器中显示。这个简单的示例 /Quadratic.php 解决了一个二次方程;但原理是相似的。
编辑:
请参见我的回答this question以获取关于 PHPExcel 计算引擎限制的一些指示。
编辑 2: PHPExcel 已被弃用,现在您可以使用 PhpSpreadsheet

0
你的思路有误。不要试图将数据发送到Excel文件中,而是在PHP脚本中读取Excel文件并在那里进行计算。
试图将动态数据发送到静态XLS文件中是行不通的。
你可以添加一个定期的cronjob,检查XLS文件数据是否发生了变化,如果有变化,则再次运行计算。

尝试将一个php脚本发送到.txt文件中,结果会是什么? - Peon
是的,这就是我试图向客户解释的,但他说公式将会变化得如此之大,以至于他无法向我提供那些公式。 - adam
好的...那就从xls文件中读取公式,并在你的php脚本中重新创建它。这样就可以了。 - Peon
@Dainis - 一个txt文件和任何事情有什么关系? - Mark Baker
因为从PHP的角度来看,.xls.txt只是一个静态文件。但是,如果你是正确的,可能有一种方法可以实现OP最初想要的功能。 - Peon
只有当PHP将其视为静态文件时,它才是静态文件,但是任何您可以读取、更新和再次写入的文件都不再是静态文件。 - Mark Baker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接