首先,我一直沒能測試這個代碼,所以我不作任何承諾,這將工作!我提供這個,但想要提前說我的答案是AFAIK!
這就是說,目前什麼你正在做的,因爲你正在轉換段落對象將無法正常工作(包含所需粗體和斜體信息)到字符串對象(即不不包含大膽或斜體信息,也就是說,在有機會測試它是否存在之前,您正在丟失粗體/斜體信息!而不是使用.Range.Text屬性,而只想使用.Range屬性。看起來像這樣:
foreach (Word.Paragraph objparagraph in document.Paragraphs)
{
int TRUE_CODE = 1; // I do NOT know if this is correct, it could be another number!
Range rWords = objparagraph.Range.Text;
foreach (Range word in rWords.Words
if (word.Bold == TRUE_CODE)
{
// handle bold case
}
if (word.Italic == TRUE_CODE)
// handle italic case
}
}
}
因爲我沒有測試過這個代碼,意識到它可能需要調整才能正確。特別是,你會認爲word.Bold和word.Italic會返回真或假,但他們不會。相反,他們返回一個代表三件事情之一的整數。
true - the word is bold (or italic)
false - the word is _not_ bold (or italic)
wdUndefined - the word is something else (combination, etc.)
(問題是,我不知道每個類別的整數是多少)。在上面的代碼片段中,我假設1映射爲true,但這可能不正確!儘管如此,希望這足以讓你開始。快樂的編碼!
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.range.bold.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1
您是否能夠根據word文檔讀取文本?這是第一步。 – Blorgbeard 2013-03-05 03:28:50
我敢肯定,你可以顯示代碼,你有*不*區分粗體和斜體字。我們會從那裏幫忙。 – 2013-03-05 03:31:11
你可能會覺得這很有幫助。正如其他人所說,如果不知道自己做了什麼,我們就無法幫上忙。 http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.find_members%28v=office.14%29.aspx – chessofnerd 2013-03-05 03:33:23