【问题标题】:Alternative for PHP_excelPHP_excel 的替代品
【发布时间】:2023-03-21 23:40:01
【问题描述】:

PHP_excel 有什么替代方法可以“导出到 XLSX/XLS”文件的自定义格式吗?

这是General Reference 标签的问题

【问题讨论】:

  • 鉴于由于提供的列表而经常出现的询问可以读取/写入 Excel 文件的库的问题经常指向这个答案......并且有问题的列表会定期更新,我没有明白为什么它应该被关闭。
  • 我不是关闭者之一,但“作为离题关闭”框中的原因似乎与我非常吻合。另见:why shopping list questions are bad。我意识到您的答案质量很高并且正在更新,但问题本身仍然属于离题类别。
  • 虽然这个问题在技术上是题外话,但这是关于这个主题的规范问答,并提供了重要的价值。请不要关闭它。

标签: php php phpexcel


【解决方案1】:

用于编写 Excel

  • PEAR 的 PHP_Excel_Writer(仅限 xls)
  • php_writeexcel 来自贝蒂娜 攻击(仅限 xls)
  • XLS File Generator 仅限商业和 xls
  • Excel Writer for PHP 来自 Sourceforge(仅限电子表格ML)
  • Ilia Alshanetsky 的 Excel extension 现在在 github(xls 和 xlsx,并且需要商业 libXL 组件)
  • PHP 的 COM extension(需要在服务器上运行支持 COM 的电子表格程序,例如 MS Excel 或 OpenOffice Calc)
  • COM 的 Open Office 替代方案 (PUNO)(需要在启用 Java 支持的服务器上安装 Open Office)
  • PHP-Export-Data,作者 Eli Dickinson(编写 SpreadsheetML - Excel 2003 XML 格式和 CSV)
  • Oliver Schwarz 的 php-excel(电子表格ML)
  • Oliver Schwarz 的原始版本 php-excel (SpreadsheetML)
  • excel_xml(SpreadsheetML,尽管它的名字)...链接报告为损坏
  • tiny-but-strong (tbs) 项目包括用于创建 OfficeOpenXML 文档(OpenDocument 和 OfficeOpenXML 格式)的 OpenTBS 工具
  • SimpleExcel声称可以读写Microsoft Excel XML / CSV / TSV / HTML / JSON / etc格式
  • KoolGrid 仅限 xls 电子表格,还包括 doc 和 pdf
  • PHP_XLSXWriterOfficeOpenXML
  • PHP_XLSXWriter_plusOfficeOpenXML,PHP_XLSXWriter 的分支
  • php_writeexcel 仅限 xls(看起来它基于 PEAR SEW)
  • spout OfficeOpenXML (xlsx) 和 CSV
  • Slamdunk/php-excel(仅限 xls)看起来像是旧 PEAR 电子表格编写器的更新版本

用于阅读 Excel

一个新的 PHP 的 C++ Excel 扩展,虽然你需要自己构建它,并且在试图找出什么功能时文档非常稀疏(我什至无法从网站上找到什么格式它支持,或者它是读取还是写入或两者兼而有之....我猜两者都支持)它提供的是来自 SIMITGROUP 的phpexcellib

来自codeplexgithub 的所有人都声称比PHPExcel 更快,但是(除了COM、PUNO Ilia 的libXl 和spout 包装器除外)它们不提供读取和写入,或两者都提供xls 和 xlsx;可能不再受支持;并且(虽然我没有测试过 Ilia 的扩展)只有 COM 和 PUNO 对创建的工作簿提供相同程度的控制。

【讨论】:

  • Ilia's extension 现在支持 XLS 和 XLSX。
  • @RZB - 您可以使用适合您的任何库,尽管 MySQL(据我所知)没有任何适用于 .xls 文件的本机导入功能,仅适用于使用 LOAD DATA 的 .csv文件。作为 PHPExcel 的开发者,我一定会在合适的地方推广和推荐它,但当它不是最合适的选择时,我不会强制使用它。
  • @velcrow 一个不错的轻量级引擎。很好的推荐,需要一些工作,但输出质量 XSLX 文件
  • 感谢您宝贵的时间。
  • @Mark,如果你能做类似$manyAnswers = split($libSeparator, $thisAnswer); // So we could vote and comment by lib的事情就好了
【解决方案2】:

我编写了一个非常简单的类,用于导出到“Excel XML”,即 SpreadsheetML。对于最终用户来说,它不如 XSLX 方便(取决于文件扩展名和 Excel 版本,他们可能会收到警告消息),但它比 XLS 或 XLSX 更容易使用。

http://github.com/elidickinson/php-export-data

【讨论】:

  • 如果你写的,你会分享你提供的许可证吗?我很难从您的回答中破译它。来自您链接但有兴趣了解更多信息的来源。
  • @Eli:我们如何合并特定行的两列?
  • @Eli,我将如何使用您的代码创建新工作表?
  • 如何使用 AJAX 生成和下载 xlsx 文件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-08
  • 2012-01-25
  • 2015-08-05
  • 2011-01-01
  • 2011-10-24
  • 2011-05-31
相关资源
最近更新 更多