2012-01-05 79 views
0

正在使用Word Interop和adn C#在工作中構建一個程序,其中的一個功能獲得了一個字數。使用c#interop從word文檔獲取格式

現在這不可能是Word字數,因爲我需要模擬在工作中使用的CAT工具的字數。

我發現的一個問題是,CAT工具使用文本格式來分割單詞。這意味着如果我有第一個詞,並且上標爲單詞,那麼單詞將會計數一個單詞(因爲兩個單詞之間沒有任何分隔),並且CAT工具根據文本格式更改計數2個單詞。

事情是CAT工具跟蹤格式變化和信息打破這個詞。因此,我可以逐字逐句逐字逐句檢查所有可能性(字體,粗體,斜體等),但是如果多個文檔每個都有1000個單詞,那麼這將非常緩慢。

有誰知道更好的解決方案?

+0

您可以檢查應用於文檔的不同樣式以及它們在哪裏? – 2012-01-05 12:09:57

+0

哪個版本的Word - doc或docx?如果docx,你可以嘗試解析XML。 – sq33G 2012-01-05 12:13:13

+0

Interop是強制性的嗎? – Yahia 2012-01-05 12:16:52

回答

2

那麼從MSDN論壇辛迪給我的答案就這一個

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

那麼的方法,我想看看是使用Document.Content.WordOpenXML到的內容解壓到一個字符串。內容將採用Office Open XML「扁平封裝」格式,這意味着它應包含所有內容。

然後,您應該能夠「解析」字符串以獲取所需的信息。

如果你看看這樣的字符串,你應該看到所有的文本都在元素中。如果有格式化,那麼它會將其分解成部分 - 每個格式更改的一部分。因此,除了提取所有w:t元素之外,您需要做的只是檢查標點符號和空格,否則將在文本中描述「單詞」。