0
我打開一個docx,這是由word2010編輯,在這個文檔中,我有一些形狀使用group.but當我得到subshape,我無法得到subshape文本。 這是我的code.can有人告訴我爲什麼?謝謝。Word2010 Shapes GroupItems無法獲得TextFrame2.TextRange
Word.Application woradApp = new Word.Application();
Word.Document doc = woradApp.Documents.Open(@"D:\ABC\a.docx");
Word.Shapes Shapes =doc.Shapes;
List<Word.Shape> list = Shapes.Cast<Word.Shape>().ToList<Word.Shape>();
foreach (Word.Shape shape in list)
{
if (shape.Type == MsoShapeType.msoGroup)
{
Word.GroupShapes dyShapes = shape.GroupItems;
foreach (dynamic item in dyShapes)
{
var range = item.TextFrame2.TextRange;
}
}
}
的「item.TextFrame2.TextRange.Text」代碼給一個例外,「TextRange的」爲空,這應該是有文字,在那裏可以得到的文本?
嗨bonCodigo,謝謝你的回答。但我仍然無法通過你的方法獲取文本。 – Wendy369
嗨bonCodigo, 首先使用「item.TextFrame2.TextRange」給出一個異常,即「TextRange \t {System.Reflection.TargetInvocationException:調用的目標發生了異常。---> System.ArgumentException:指定的值超出了範圍「。我使用」快速查看「,但無法找到任何文本信息。 第二次使用「shape.UnGroup()」,得到ShapeRange,但仍然找不到任何TextRange可以使用的。 該文檔是由Word2010編輯並保存爲「Docx」。如果我使用word2003的上述代碼,一切都可以。 現在我不知道該怎麼辦,可以給我一些建議嗎?謝謝。 – Wendy369
Wendy369請不要在這裏輸入中文。本網站使用英文。而且你沒有提到你的代碼在2003年工作,並在2010年最初失敗。我們可以確認你的代碼在2003年工作嗎? – bonCodigo