Csharp/C#教程:如何使用C#迭代和计算Word文档中的修订?分享


如何使用C#迭代和计算Word文档中的修订?

我一直在寻找这个,但无法在任何地方找到答案,所以希望有人在这里可以提供帮助。

我在C#中使用WinForms应用程序,我使用WordApplcation.CompareDocuments来比较两个文档,并获得一个结果文档,其中的更改标记为Revisions。

这很好用,除了修改隐藏文本框内的东西(我还不关心),我得到了我想要的东西。

所以下一步是计算修改了多少单词 – 特别是wdRevisionDelete和wdRevisonInsert。

唯一的问题是final.Revisions有时是空的或包含大量数据(超过500字)。

我在MSDN页面上阅读了Revisions.Count那个文件。修订版不会显示所有修订版本,只会显示主要故事并且我必须使用范围 – 但这没有帮助。

这是我目前的代码:

using Word = Microsoft.Office.Interop.Word; 

 foreach (Word.Section s in final.Sections) { foreach (Word.Revision r in s.Range.Revisions) { counter += r.Range.Words.Count; if (r.Type == Word.WdRevisionType.wdRevisionDelete) delcnt += r.Range.Words.Count; if (r.Type == Word.WdRevisionType.wdRevisionInsert) inscnt += r.Range.Words.Count; } } 

final是WordApplication.CompareDocuments创建的Word文档

所以,正如我所说,根据MSDN,我使用range.Revision而不是document.Revision,并逐段进行。

只有一个包含六个修订版的文档显示没有,而其他文档显示100个。

所以我的问题是,如何使用修订来计算添加/删除的单词。

我打开了CompareDocuments在Word 2007中创建的文档,并且修订版本已正确标记,可以在Word中接受或拒绝

我可能会忽略的任何想法?

编辑:我注意到一些奇怪的事情 – 当我尝试保存为txt文件的原始doc文件报告0更改虽然CompareDocuments标记(正确)一些,我注意到并非所有页面都保存到txt文件 – 包括所有修改区域。

我尝试使用Word 2007和LibreOffice 3.3转换为txt文件 – 两者都有相同的结果(缺少很多文本)。

可能会以某种方式相关。

不知道这个文件有什么问题。

有任何想法吗?

那么显然这个代码并没有什么问题,可以处理更简单的文件。

我正在测试的文件有些奇怪。

就像我的编辑说的那样,甚至无法正确地将它们保存为txt文件。

任何知道可能导致这种情况的人都让我知道,同时这个解决了Word文档文件问题。

上述就是C#学习教程:如何使用C#迭代和计算Word文档中的修订?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1000723.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐