在PHP服务器上处理Excel公式

在PHP服务器上处理Excel公式,php,performance,concurrency,phpexcel,Php,Performance,Concurrency,Phpexcel,我有一个相当复杂的电子表格公式。现在我正在使用PHPExcel将电子表格加载到内存中,我将公式输入的单元格值设置为前端表单中的值(使用ajax),获得计算结果并将其发送回客户端 这是最好的方法吗?还是应该将公式转换为纯php 如果这是一个不错的方法,我会担心并发性和内存使用 电子表格没有那么大,少于1000个单元格。如何计算服务器上的并发性阈值(人们在前端单击计算)和内存使用率 在平衡性能的同时,我可以采取哪些步骤来优化此算法(例如缓存)?对于大量并发用户来说,作为ajax请求执行此操作会遇到问

我有一个相当复杂的电子表格公式。现在我正在使用PHPExcel将电子表格加载到内存中,我将公式输入的单元格值设置为前端表单中的值(使用ajax),获得计算结果并将其发送回客户端

这是最好的方法吗?还是应该将公式转换为纯php

如果这是一个不错的方法,我会担心并发性和内存使用

电子表格没有那么大,少于1000个单元格。如何计算服务器上的并发性阈值(人们在前端单击计算)和内存使用率


在平衡性能的同时,我可以采取哪些步骤来优化此算法(例如缓存)?

对于大量并发用户来说,作为ajax请求执行此操作会遇到问题,因为这些http请求没有持久性,因此您需要为每个请求加载电子表格文件。它所能保证的是,每个请求都独立运行,并有自己的电子表格副本,因此单个用户的请求不会影响任何其他用户的请求

另一个极端是采用所有Excel逻辑并用PHP重写它。您没有给出任何关于电子表格公式复杂性的指示,因此很难判断这项任务有多复杂


第三种选择是只使用PHPExcel的计算引擎,直接向其提供表单值和公式。这消除了每次请求加载电子表格文件时的时间和内存开销,因此可能是最简单、最有效的选择。您可以在php发行版的/Tests目录下的Quadratic2.php示例文件中找到这方面的示例。

对于大量并发用户来说,作为ajax请求执行此操作会遇到问题,因为这些http请求没有持久性,所以您需要为每个请求加载电子表格文件。它所能保证的是,每个请求都独立运行,并有自己的电子表格副本,因此单个用户的请求不会影响任何其他用户的请求

另一个极端是采用所有Excel逻辑并用PHP重写它。您没有给出任何关于电子表格公式复杂性的指示,因此很难判断这项任务有多复杂


第三种选择是只使用PHPExcel的计算引擎,直接向其提供表单值和公式。这消除了每次请求加载电子表格文件时的时间和内存开销,因此可能是最简单、最有效的选择。您可以在php发行版的/Tests目录下的Quadratic2.php示例文件中找到这方面的示例。

我永远不会用电子表格替换web app\site,但如果不知道数据是什么,很难回答。例如,我想将公式转换为php,是否有一个很好的资源用于php等价的excel函数?我在考虑PV、NPV和PMT等函数。如果您确实需要为PV()、NPV()、PMT()和类似的Excel函数编写自己的代码,那么您可以使用PHPExcel实现作为此函数的基础。。。它可能是您将找到的PHP等价函数的最佳资源。再次感谢Mark指出这一点!你在回答中总结得很好,我相信这是一条正确的道路。实现calc引擎将为我节省大量的麻烦,并将在将来证明非常有用。谢谢我永远不会用电子表格代替web app\site,但如果不知道数据是什么,很难回答。比如说,我想将公式转换为php,是否有一个很好的资源用于php等价的excel函数?我在考虑PV、NPV和PMT等函数。如果您确实需要为PV()、NPV()、PMT()和类似的Excel函数编写自己的代码,那么您可以使用PHPExcel实现作为此函数的基础。。。它可能是您将找到的PHP等价函数的最佳资源。再次感谢Mark指出这一点!你在回答中总结得很好,我相信这是一条正确的道路。实现calc引擎将为我节省大量的麻烦,并将在将来证明非常有用。谢谢你好,马克。Calc引擎可能确实是实现这一点的方法,这样我就不必自己重新实现所有功能。我没有意识到calc引擎是可以直接插入的。这非常方便!我现在就尝试一下。再次感谢!我特意编写了独立运行的计算引擎以及PHPExcel,尽管有一些Excel函数(主要是信息、查找和引用以及数据库类别中的函数)依赖于电子表格本身的结构。只要您避免这些,那么您就应该能够独立于实例化的PHPExcel object使用计算引擎。另外请注意,在今年期间,计算引擎将有一个全新的实现,但它仍然能够运行standaloneHi Mark。Calc引擎可能确实是实现这一点的方法,这样我就不必自己重新实现所有功能。我没有意识到calc引擎是可以直接插入的。这非常方便!我现在就尝试一下。再次感谢!我特意编写了独立运行的计算引擎以及PHPExcel,尽管有一些Excel函数(主要是信息、查找和引用以及数据库类别中的函数)依赖于电子表格本身的结构。只要您避免这些,那么您就应该能够独立于实例化的PHPExcel object使用计算引擎。另外请注意,今年将有一个全新的计算引擎实现,但它仍然能够