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

2024-01-20

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

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

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

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

我们的想法是,分析(来自第三方)相当复杂,因此需要大量的拆解才能在 PHP 中复制,其次,分析的部分内容经常被第三方调整,这意味着新版本的分析Excel 会定期提供给我们。

我可以想象使用 PHPExcel 做这样的事情,在内存中创建工作表并将原始数据合并为第二个工作表,然后读出计算结果,但这是否现实 - 会不会太慢 - 或者根本不起作用我想象得怎么样?

任何想法将不胜感激。


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

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

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

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

另一方面,如果您的客户曾经更改过他们的电子表格(并且您指出这种情况相当频繁),那么使用 PHPExcel 的内置计算引擎意味着它仍然可以毫无问题地工作,而自定义编写的代码则需要修改。 正如您已经指出的,复杂的公式可能需要大量工作才能转换为 PHP 代码;取消对电子表格中公式所做的更改将特别困难。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Excel在PHP应用程序中进行核心分析? 的相关文章

  • 学说 - 获取下一个和上一个记录

    这样我就已经获取了一些记录 我已创建日期字段 现在我想按日期获取下一条和上一条记录 通过以下方式让它工作 qb this gt createQueryBuilder a next qb gt expr gt gt a created dat
  • Drupal 模板/主题资源或建议?

    我有兴趣为我正在开发的 Drupal 网站创建自定义主题 我是 Drupal 的新手 但是我在处理构建主题 CSS PHP HTML 所需的基本概念方面拥有相当多的经验 所以 我的问题是 我从哪里开始 有创建 Drupal 主题的规范指南吗
  • 如何使用多个分隔符拆分列表?

    基本上 我想在文本区域中输入文本 然后使用它们 例如 variable1 variable2 variable3 variable1 variable2 variable3 variable1 variable2 variable3 我知道
  • 我无法访问 XAMPP phpMyAdmin;它说:错误 MySQL 说:文档无法连接:无效设置

    完整错误消息 Error MySQL said Documentation Cannot connect invalid settings Connection for controluser as defined in your conf
  • Shift+Enter 按钮用于提交表单

    我想使用 Shift Enter 按钮提交表单 而不是简单地按 Enter 按钮 请帮助我 如果您仍然想这样做 尽管这会带来可用性问题 form keydown function e if e keyCode 13 e shiftKey W
  • 从 Yii 中的 registerScript 方法强制执行脚本顺序

    我创建了一个小部件 它注册了自己的脚本 如下所示 class MyWidget extends CWidget public function run Yii app gt clientScript gt registerScript CL
  • 将 bcrypt 密码哈希从 PHP 迁移到 Python - ValueError:无效的 hashed_pa​​ssword salt

    我有一个 PHP7 应用程序 它可以像这样对用户密码进行哈希处理 hash password hash password PASSWORD BCRYPT 例如 如果我通过test1234为此 我有 2y 10 aazE9OUKZlOQiM6
  • PHP foreach 数组与 stdClass 对象

    我需要帮助尝试获取数组和 stdClass 对象内的值 仅供参考 我正在使用 foursquare API 我有这样的事情 fsq groups venues gt response gt groups echo pre print r f
  • 服务容器的使用寿命是多少?

    我正在尝试了解 Symfony2 框架 来自 Java Spring 背景 我意识到 Symfony2 中的 Scope 与 Spring 中的 Scope 不同 此外 通过 Symfony3 范围已弃用 https stackoverfl
  • 如何在我的查询中使用日期格式?

    这适用于 phpmyadmin 但是当我在代码上使用时给我一个错误 错误说 解析错误 语法错误 意外的 我的语法有什么问题 gt
  • 如何从 PHP 访问表单的“名称”变量

    我正在尝试创建一个 BMI 计算器 这应该允许人们使用公制或英制测量单位 我意识到我可以使用隐藏标签来解决我的问题 但这之前曾困扰过我 所以我想我会问 我可以使用 POST variableName 查找提交的变量名字段值 但是 我不知道或
  • 尝试使用 PHP GD 以固定宽度/高度生成按比例裁剪的缩略图

    我正在尝试使用 GD 在 PHP 中创建一个缩略图生成器 它将获取图像并将其缩小到固定的宽度 高度 它从原始图像中获取的正方形 基于我的固定宽度 高度 将来自图像的中心 以给出比例正确的缩略图 我将尝试用一些漂亮的 ASCII 来演示这个令
  • 有没有办法通过给出整数值 PHP 来获取月份名称

    您好 我正在使用 PHP 我想传递一个整数值 1 12 并获取相应的月份名称 PHP 中有没有办法做到这一点 或者我必须通过初始化月份名称数组来完成自己的操作 我想做 month name get month name 1 echo mon
  • 如何反转散列和加盐密码? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 vBulletin 登录使用它来交叉引用数据库 md5 md5 pass salt 我如何制作一个 PHP 脚本 以便每个密码
  • 以编程方式添加数字签名外观?

    我正在以编程方式对我的 PDF 文件进行签名 并且我想将签名外观添加到 PDF 我需要哪些对象才能实现此目的 我知道我必须Annotations BBox and XObject但我真的不知道按什么顺序以及是否需要其他东西 调试此类内容以找
  • 基于 ajax 的弹出窗口中的 Mathjax + CKEditor 4 + CKEditor

    我已经配置了 CKEditor 4 并且我的页面上有以下内容 我的页面中有一个 CKEditor 设置值的两个选项 这两个选项本身分别选项两个基于 ajax 的弹出窗口 这些基于 ajax 的弹出窗口包含 CKEditor 现在我有以下问题
  • JSON 编码和大引号

    我在 PHP 5 的本机实现中遇到了一个有趣的行为json encode 显然 当将对象序列化为 json 字符串时 编码器将清空包含 卷曲 引号的字符串的任何属性 这种类型可能会在启用自动转换的情况下从 MS Word 文档中复制粘贴 这
  • 当我在 PHP 中将 print_r() 应用于数组时,为什么会得到“Resource id #4”? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • PHP/MySQL - 在数据库中存储数组

    我正在开发一个 PHP 应用程序 它需要将各种设置存储在数据库中 客户经常询问是否可以添加或更改 删除某些内容 这导致了表格设计出现问题 基本上 我有很多布尔字段 它们只是指示是否为特定记录启用了各种设置 为了避免再弄乱表格 我正在考虑将数
  • 字符串不等于其自身

    But why if i echo good else echo bad echos gt gt bad 您应该复制此片段 如果你手写的话 它会起作用 它让我疯狂 你太狡猾了 第二个 I 不是小写拉丁文小写 i 我把它转储了 hexdump

随机推荐