notes 导出数据到 excel 慢

notes export data to excel slow

如果我遍历 10 个文档并用这些文档中的数据填充 excel sheet,那么导出有时会很慢,有时会很快。 这怎么可能,我是这样导出数据的:

Set objExcel = CreateObject("Excel.Application")
objExcel.Application.Visible = True
Call objExcel.Application.Workbooks.Open(CorDos.CorBestandsnaam)
Set xlSheet = objExcel.Application.ActiveWorkbook.Activesheet

然后填充单元格..

文档在另一台服务器上的数据库中,这台服务器有时也有一些问题 I/O 这也是问题所在吗?

这不是 Lotus Notes 的问题,而是典型的 excel- 自动化问题。只需搜索 "excel vba slow",您就会发现大量关于如何再次加快速度的文章。向 excel 写入内容的最快方法是:在 LotusScript 中创建一个二维数组并将文档值分配给该数组。然后一次写入整个数组。这看起来像这样:

...
Set dc = db.UnprocessedDocuments
...
Redim varArray( dc.Count - 1, NumberOfFields ) as String

Set doc = dc.getFirstDocument()
While not doc is Nothing
  varArray(i , 0 ) = doc.GetitemValue( "FirstField" )(0)
  varArray(i , 1 ) = doc.GetitemValue( "SecondField" )(0)
  varArray(i , 2 ) = doc.GetitemValue( "ThirdField" )(0)
  ....
  i = i + 1
  Set doc = dc.GetNextDocument(doc)
Wend 
...
xlSheet.Range( xlSheet.Cells(1,1), xlSheet.Cells(dc.Count,NumberOfFields) ) = varArray

此代码未经测试,部分取自对 的回复,但应该会告诉您前进的方向。

我喜欢@Torsten-Link 的回答,但这可能不是您遇到的瓶颈。您可能需要考虑一种模式,其中 excel 文件的构建,或者至少整理要插入其中的数据,是在拥有数据的实际机器上完成的,然后以简洁的方式传递信息沟通。 许多 与速度有关的问题都与远程数据的本地处理和筛选有关。

还有,你真的应该把Visible设置为false,然后确保它即使出错也要变成true。将 Visible 属性 设置为 True 确实会减慢速度。