如何从php站点导出数据到Excel 97(.xls)格式?

lqfhib0f  于 2022-12-10  发布在  PHP
关注(0)|答案(1)|浏览(142)

我有一个用户,必须从一个软件中获取数据,然后导入到另一个软件中。数据必须是Excel格式,并遵循包含多个工作表的模板,因此.csv文本导出将不起作用。
我想通过在公司网站上提供一个页面,让用户以正确的格式下载他们需要的数据,让用户轻松完成这项工作,但我不知道如何让PHP将任何内容保存在Excel中。
我一直在尝试用我熟悉的技术来做一些事情。我想我已经很接近了,但我遇到了一个问题。
我的想法是让PHP执行一个VB脚本(.vbs)来创建Excel文件。我从一个快速的.vbs开始,它创建了一个文本文件,并且成功了。当我试图运行一个创建Excel文件的.vbs时,它不起作用。
这是我的PHP来执行每个脚本。

exec('cscript.exe "'.$_SERVER["DOCUMENT_ROOT"].'\makeText.vbs"');
exec('cscript.exe "'.$_SERVER["DOCUMENT_ROOT"].'\makeExcel.vbs"');

下面是makeText.vbs代码。

set objFileSystem = createobject("scripting.filesystemobject")
set objTextFile = objFileSystem.createtextfile("c:\inetpub\wwwroot\website\data\vbsTest.txt")

objTextFile.writeline("This is a test.")

objtextFile.close

set objTextFile = nothing
set objFisleSystem = nothing

下面是我的makeExcel.vbs代码。

strESSFolderName = "c:\inetpub\wwwroot\website\data\"

set objExcelApplication = createobject("excel.application")
set objExcelWorkbook = objExcelApplication.workbooks.add

objExcelWorkbook.sheets(1).cells(1, 1).value = "test"

objExcelWorkbook.saveas(strESSFolderName & "test.xlsx")

objExcelWorkbook.close()

objExcelApplication.quit()

set objExcelWorkbook = nothing
set objExcelApplication = nothing

当我加载运行这些脚本的页面时,会创建文本文件,但不会创建excel文件。我认为这与运行Excel的IUSR权限有关,但我不知道该如何处理。我想找到一个可行且安全的解决方案。我读到过一个COM类,它允许PHP与支持OLE的软件和一个名为PHPSpreadsheet的库进行交互。但我并不真正了解如何安装或使用它们。
先谢谢你了。

c2e8gylq

c2e8gylq1#

谢谢!我在phpspreadsheet的github页面迷路了。我不知道你可以从命令行下载并安装composer和phpspreadsheet。
对于其他有这种麻烦的人来说。
https://getcomposer.org/download/
https://phpspreadsheet.readthedocs.io/en/latest/

相关问题