Excel 文件无法保存在 PHP COM 应用程序中

Excel file can not be saved in PHP COM Application

我们在 PHP 中保存 excel 张纸时遇到问题。

简约代码:

// R: is a Ramdisk
$filename = 'R:\sheets\ExcelFile_123.xlsx';
$application = new COM("Excel.Application", null, CP_UTF8);
$workbook = $application->Workbooks->Open($filename);
$workbook->save();

保存调用将抛出 com_exception 消息“来源:Microsoft Excel 描述:Das Dokument wurde nicht gespeichert。” (德语为“文档未保存。”)

当打开工作簿的任何工作表并且我试图再次保存工作表时,我得到另一个 com_exception 消息“来源:Microsoft Excel 描述:Zugriff auf 'ExcelFile_123.xlsx' verweigert。” (德语为“访问 'ExcelFile_123.xlsx' 被拒绝。”)

我检查了以下内容:

我切换了上面提到的每个设置,甚至尝试了 https://support.microsoft.com/en-us/help/2589410/access-denied-error-message-when-you-save-a-workbook-to-a-unc-share-in

不合适的解决方案

问题: 为什么我不能保存 excel 文件,即使我有写入权限?


系统信息

PHP com_dotnet 分机:

com_dotnet\
COM support enabled\
DCOM support    disabled\
.Net support    enabled\
Directive   Local Value Master Value\
com.allow_dcom  0   0\
com.autoregister_casesensitive  1   1\
com.autoregister_typelib    0   0\
com.autoregister_verbose    0   0\
com.code_page   no value    no value\
com.typelib_file    no value    no value

您的 PHP 申请 运行ning 可能是用户个人资料的问题。请查看办公产品服务器端办公自动化的文章(里面列出了常见问题)。要查看问题是否确实是帐户问题,我会尝试将 Apache (PHP) 下的帐户更改为 运行 您的帐户(或者只是启动 Apache 命令行以查看是否可以解决问题)。

https://support.microsoft.com/en-us/help/257757/considerations-for-server-side-automation-of-office

https://theether.net/download/Microsoft/kb/288367.html

顺便说一句,还有(付费)替代方案可以进行计算和 运行 服务器端。