为什么VBA函数不能与PHP7一起使用



我刚刚将我的web应用程序从PHP 5.XXX升级到PHP 7.4.28。

到目前为止,我解决了大部分问题,但我一直被一个VBA(DCOM(函数卡住,这个函数显然不再被识别:

$myTable->Range->InsertBreak(8);

其中";8〃;表示wdColumnBreak。

你能告诉我是否有其他语法可以使这个分栏符正确工作吗?

非常感谢您的任何建议,非常感谢

关于Office服务器端自动化的注意事项文章指出:

Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务(自动化Microsoft Office应用程序,因为在这种环境中运行Office时,Office可能会表现出不稳定的行为和/或死锁。

如果您正在构建一个在服务器端上下文中运行的解决方案,则应尝试使用可安全执行无人值守的组件。或者,您应该尝试找到至少允许部分代码运行客户端的替代方案。如果使用服务器端解决方案中的Office应用程序,则该应用程序将缺乏成功运行所需的许多功能。此外,您将在整体解决方案的稳定性方面承担风险。

我建议选择为服务器端执行而设计的组件。如果您只处理开放式XML文档,还可以查看开放式XML SDK。

经过一段时间的挣扎,我可以找到以下解决方案:

$myNumber= new VARIANT(8, VT_I4);
$MyTable->Range->InsertBreak($myNumber);

基本上,InsertBreak函数的参数必须被视为变量,而不是数字。使用这种语法,它工作得很好。

我真的很想分享这个解决方案,因为我不喜欢这种方法">不再推荐这种技术,只需选择最新的技术";。。。迁移到新技术并不总是那么简单(甚至没有任何可靠性保证(。

干杯

最新更新