Не удается перебрать коллекцию Shapes - PullRequest
2 голосов
/ 27 декабря 2010

C # и взаимодействие слов, у меня есть текстовый документ с некоторыми текстовыми полями (формы msoTextBox), проблема в том, что я не могу перебрать коллекцию фигур с кодом ниже:

foreach (Shape shape in WordDocument.Shapes)
        {}

, хотя при настройкеточка останова в строке цикла. Я вижу, что WordDocument.Shapes.Count возвращает 4.

Я отмечаю, что текстовые поля вставляются с использованием open xml sdk.

Ответы [ 3 ]

2 голосов
/ 27 декабря 2010

Я обнаружил, что есть проблема при использовании текстовых полей.Взгляните на это решение .

0 голосов
/ 25 марта 2019

Итак,

Заменить:

foreach (Shape shape in WordDocument.Shapes)
   {
   }

Автор:

     foreach (Range rangeStory in WordDocument.StoryRanges)
     {
        foreach (Shape shape in rangeStory.ShapeRange)
        {

        }
     }

Работает отлично.

0 голосов
/ 27 декабря 2010

С Код проекта :

    // 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);
        }
    }

Из того, что ты сказал, ты выглядишь так, будто поступаешь правильно.

Можете ли вы дать нам сообщение об ошибке StackTrace?

PS: я знаю, что мой вопрос должен был быть в комментариях, но он не был бы читабельным:)

...