无法在 Microsoft IIS 服务器上使用 PHP 执行 Excel 宏

Unable to execute an Excel macro using PHP on a Microsoft IIS server

提问人:Fabien Gréaux 提问时间:10/10/2023 最后编辑:braXFabien Gréaux 更新时间:10/11/2023 访问量:41

问:

我有一个使用 PHPSpreadSheet 在 IIS 服务器上运行的 PHP 应用程序。Excel 安装在托管网站的服务器上。我的主要目标是将数据库中的数据插入到客户端的 Excel 文件中。它对某些人有效,但对其他人无效。问题是文件具有上下文格式,一旦文件保存,上下文格式就会消失,这似乎是一个已知问题。所以,我尝试了一种不同的方法。我创建了一个名为“data.xlsm”的临时 Excel 文件,其中包含一个宏,该文件在打开文件时自动运行,以将接收到的数据插入到客户端的 Excel 文件中。

我的问题是我无法在PHP代码中打开“ data.xlsm”文件。如果我双击它或使用服务器的“cmd”打开它,它可以正常工作。

Cmd: "C:/Program Files/Microsoft Office/root/Office16/Excel.exe" C:/www/dunfreshSQ/FICHIERS/Data.xlsm

我尝试重新加载文件,修改它,然后用phpSpreadSheet保存它,但没有任何反应。我还尝试执行适用于“cmd”的命令,但没有任何反应:

$command = '"C:/Program Files/Microsoft Office/root/Office16/Excel.exe" C:/www/dunfreshSQ/FICHIERS/Data.xlsm 2>&1';
$output = array();
$returnValue = null;
exec($command, $output, $returnValue);

我看到您可以使用PHP COM对象运行宏,但问题是当我这样做时出现错误:

$excel = new COM("Excel.application");

它找不到该类,即使我的“ext”文件夹中有“php_com_dotnet.dll”并且在“php.ini”中激活了扩展。

救命!!”

php excel com phpspreadsheet

评论

2赞 Simon Mourier 10/10/2023
从技术上讲,不建议使用服务器端 Office,不支持 support.microsoft.com/en-us/topic/...,并且可能还会面临一些法律(许可)问题

答: 暂无答案