使用c#interop从word文档中获取格式

时间:2012-01-05 12:08:00

标签: c# text formatting ms-word interop

使用Word Interop和C#在工作中构建一个程序,其中一个功能就是计算字数。

现在这不是Word字数,因为我需要模拟工作中使用的CAT toool的字数。

我发现的一个问题是CAT工具使用文本格式来分割单词。这意味着如果我有单词1st with st superscripted,则单词将计算一个单词(因为两者之间没有任何区别),CAT工具根据文本格式更改计算2个单词。

东西是CAT工具跟踪格式变化,而这些信息会破坏这个词。

所以,我可以逐字逐句地逐字逐句地检查所有可能性(字体,粗体,斜体等),但是如果使用多个文件(每个文字有1000个单词),这将会非常慢。

有谁知道更好的解决方案?

1 个答案:

答案 0 :(得分:2)

来自MSDN论坛的Cindy给了我这个答案的答案

http://social.msdn.microsoft.com/Forums/en-US/worddev/thread/16fc1fb9-4713-45e5-ae00-76bbaafe0a56

  

然后我要看的方法是使用Document.Content.WordOpenXML将内容提取到字符串中。内容将采用Office Open XML“平面包”格式,这意味着它应包含所有内容。

     

然后,您应该能够“解析”字符串以获取所需的信息。

     

如果查看这样的字符串,您应该看到所有文本都在元素中。如果有格式化,那么它将打破部分 - 每个格式更改的一部分。因此,除了提取所有w:t元素之外,您需要做的就是检查标点符号和空格,否则会在文本中描述“单词”。