文档.在Word 2013中,GoTo开始执行很慢

本文关键字:开始 执行 GoTo Word 2013 文档 | 更新日期: 2023-09-27 18:04:15

我正在研究一个使用Word互操作的专有Word插件。现在,我正在研究一种方法,该方法将书签添加到文档中每个页面的开头。我发现它在Word 2010上运行得非常快,但在Word 2013上,随着运行页数的增加,它开始变慢。下面是循环的代码:

        for (int i = 1; i <= totalNumberOfPages; i++)
        {
            object pageNumObj = i;
            object pageBegin = _document.GoTo(ref gotoItem, ref missing, ref pageNumObj, ref missing);
            _document.Bookmarks.Add("Page_BM_" + (curPageNumber < 0 ? "n" : "") + Math.Abs(curPageNumber), ref pageBegin);
            if (curPageNumber == -1)
                curPageNumber = 1;
            else
                curPageNumber++;
        }

我发现_document。随着循环的进行,GoTo语句开始变慢。对于大型文档(超过1000页),它变得非常慢,需要花费数小时才能完成该过程。有什么办法可以加快速度吗?还是Word 2013中存在已知的问题可能会导致这种情况?

文档.在Word 2013中,GoTo开始执行很慢

Word自动化并不是真正设计用来逐页处理文档的,Shauny Kelly在这里解释了这一点。

您可能需要尝试一些方法来解决可能会减慢Word自动化速度的常见问题:

  • 禁用屏幕更新:_document.Application.ScreenUpdating = false;
  • 尝试保存文档一次:_document.Save();
  • 清除undo stack: ActiveDocument.UndoClear();
  • 隐藏状态栏中的缩放级别或尝试隐藏状态栏中由Word刷新的其他元素(右键单击状态栏并取消选中相应的项目)。

这些只是已知的通常会影响自动化性能的事情。然而,上述方法都不能保证在您的情况下加快速度,但您可能想尝试一下。