(Interop.Word)Range.Copy-Range.Paste工作慢
(Interop.Word) Range.Copy-Range.Paste work slow
我使用 Microsoft.Office.Interop.Word 基于另一个文档创建一个新文档。 search/replace 操作使用 Range.Text 进行了多次迭代,所有操作都非常快。但是,在一种情况下,我需要复制一整章的所有格式,而不是 Range.Text(重置所有格式)我使用 Range.Copy 和 Range.Paste。它们有效,但对于大约 450 个单词的测试章节,它们最多需要 40 秒(而当我更改相同代码以使用 Range.Text 时不到 1 秒)。
问题:有什么方法可以让Range.Copy/Range.Paste更快?我只需要找到一段特定的文本并将其与所有表格、格式等一起复制到另一个文件中。
如果你想在 word 中复制带有格式的文本,你可以使用 FormattedText 属性 of Range
like
targetRange.FormattedText = sourceRange.FormattedText;
避免使用 Range.Copy() 和 Range.Paste(),因为这种方法在内部使用剪贴板,这可能会导致安全问题,或者在某些情况下可能会产生不可预测的结果
我使用 Microsoft.Office.Interop.Word 基于另一个文档创建一个新文档。 search/replace 操作使用 Range.Text 进行了多次迭代,所有操作都非常快。但是,在一种情况下,我需要复制一整章的所有格式,而不是 Range.Text(重置所有格式)我使用 Range.Copy 和 Range.Paste。它们有效,但对于大约 450 个单词的测试章节,它们最多需要 40 秒(而当我更改相同代码以使用 Range.Text 时不到 1 秒)。
问题:有什么方法可以让Range.Copy/Range.Paste更快?我只需要找到一段特定的文本并将其与所有表格、格式等一起复制到另一个文件中。
如果你想在 word 中复制带有格式的文本,你可以使用 FormattedText 属性 of Range
like
targetRange.FormattedText = sourceRange.FormattedText;
避免使用 Range.Copy() 和 Range.Paste(),因为这种方法在内部使用剪贴板,这可能会导致安全问题,或者在某些情况下可能会产生不可预测的结果