C#和word interop, 我有一个带有一些文本框(msoTextBox形状)的word文档,我无法使用下面的代码遍历形状集合的问题:
foreach (Shape shape in WordDocument.Shapes)
{}
虽然在循环行中设置断点时我可以看到WordDocument.Shapes.Count返回4.
我注意到使用open xml sdk插入了文本框。
答案 0 :(得分:2)
我发现使用文本框时会出现问题。看一下这个solution。
答案 1 :(得分:0)
来自Code Project:
// Get the word count from all shapes
foreach (Word.Shape shape in wordDocument.Shapes)
{
if (shape.TextFrame.HasText < 0)
{
count+=GetCountFromRange(shape.TextFrame.TextRange,wordDocument,word);
}
}
根据你的说法,你看起来就是做对了。
你能给我们Error StackTrace吗?
PS:我知道我的问题应该在评论中,但它不可读:)
答案 2 :(得分:0)
所以
替换:
foreach (Shape shape in WordDocument.Shapes)
{
}
通过:
foreach (Range rangeStory in WordDocument.StoryRanges)
{
foreach (Shape shape in rangeStory.ShapeRange)
{
}
}
工作完美。