如何解决Office 365 Excel COM接口性能是否受到点击运行的影响
我有一个普通的C非托管64位程序,该程序使用后期绑定和OLE / COM接口来访问Excel,Outlook,Word,PowerPoint和许多其他与Automation / OLE兼容的应用程序。它可以(愉快地)在包括我公司的笔记本电脑在内的各种Windows平台上运行。
直到上周,笔记本电脑才装有Win 10和Office16。Excel的演示脚本始终在11秒内运行。公司政策要求对Office 365进行更新。因此,Excel现在为“版本2007(版本13029.20344单击运行)”。
现在11秒钟的脚本现在需要1分36秒。
星期五,一台全新的公司笔记本电脑(Lenovo T490s)也需要约1分36秒。
其他各种脚本(Outlook和Word)的性能在Office 16和Office 365之间未显示任何性能问题。
似乎在脚本命令中,例如:
Dim myExcel = CeateOBject ("Excel.application")
myExcel. visible = TRUE
' code to open an empty workbook
myWorkBook.cells(1,1).value = 1
myWorkBook.cells(1,1).value
命令所花费的时间约为myExcel. visible = TRUE
的两倍
以及诸如
之类的命令 myExcel.range(myExcel.cells(1,1).address,myExcel.cells( 1,9).address).font.bold = 1
大约是myExcel. visible = TRUE
的6倍(约4秒)
myExcel. visible = TRUE
是一个电话。
myWorkBook.cells(1,1).value
是双重通话
myExcel.range(myExcel.cells(1,9).address).font.bold = 1
需要7个(我认为)通话!
将我的一些无知公开展示:
由于没有错误报告,并且脚本以预期的结果运行(运行时问题除外),所以我很难怪罪脚本或Excel对象模型。 (是的,我知道我们总是在怪别人之前,甚至还没有想到可能是我们在犯错误!)
但是为什么为什么要与Office 16相比性能如此出色,为什么只在Excel而不是其他Office应用程序上如此?
我觉得我公司的服务台范围太广了,任何帮助将不胜感激。
p.s。为什么不使用VBA?因为我的应用程序包含sqlite数据库引擎,所以它可以在脱机PC /笔记本电脑上处理大量数据,而无需在(或用户)计算机上安装XAMP,MAMP ...之类的东西。我使用OLE / COM接口在应用程序和Excel之间交换数据(比编写自己的xlsx / m / b文件处理程序更容易!)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。