COM Word -> Получить все ContentControls - PullRequest
2 голосов
/ 25 ноября 2011

Я хочу получить все ContentControls Word-Document. В настоящее время я использую следующую функцию, чтобы сделать это.

    private static List<ContentControl> GetAllContentControls(Document wordDocument)
    {
        if (null == wordDocument)
            throw new ArgumentNullException("wordDocument");

        List<ContentControl> ccList = new List<ContentControl>();

        Range rangeStory;
        foreach (Range range in wordDocument.StoryRanges)
        {
            rangeStory = range;
            do
            {
                try
                {
                    foreach (ContentControl cc in rangeStory.ContentControls)
                    {
                        ccList.Add(cc);
                    }
                }
                catch (COMException) { }
                rangeStory = rangeStory.NextStoryRange;

            }
            while (rangeStory != null);
        }
        return ccList;
    }

Проблема также в том, чтобы получить Contentcontrols в текстовых полях.

1 Ответ

1 голос
/ 25 ноября 2011

Я понял

    private static List<ContentControl> GetAllContentControls(Document wordDocument)
    {
        if (null == wordDocument)
            throw new ArgumentNullException("wordDocument");

        List<ContentControl> ccList = new List<ContentControl>();

        Range rangeStory;
        foreach (Range range in wordDocument.StoryRanges)
        {
            rangeStory = range;
            do
            {
                try
                {
                    foreach (ContentControl cc in rangeStory.ContentControls)
                    {
                        ccList.Add(cc);
                    }

                    foreach (Shape shapeRange in rangeStory.ShapeRange)
                    {
                        foreach (ContentControl cc in shapeRange.TextFrame.TextRange.ContentControls)
                        {
                            ccList.Add(cc);
                        }
                    }
                }
                catch (COMException) { }
                rangeStory = rangeStory.NextStoryRange;

            }
            while (rangeStory != null);
        }
        return ccList;
    }
...