Нужна помощь в извлечении значений optionbutton из документа Word

У меня есть текстовый документ, содержащий текстовые поля, поля формы и кнопки выбора, которые мне нужно автоматически обрабатывать с помощью C#. Я могу использовать коллекцию formfields для извлечения текстовых полей и полей формы, но когда дело доходит до кнопок выбора (переключателей), я изо всех сил пытаюсь найти, где искать, чтобы получить к ним доступ. Я пробовал коллекцию contentcontrols, поскольку кнопки выбора являются элементами управления ActiveX, я предполагал, что они попадут туда, но, увы, коллекция пуста, когда я обращаюсь к ней. Я бы предпочел использовать для этого средства автоматизации Word (Microsoft.Office.Interop.Word), но готов выслушать любые предложения.

Документ был создан в Word 2007 с использованием инструментов разработчика. Я могу опубликовать пример документа, если это необходимо, но не могу опубликовать документ, который я пытаюсь прочитать, учитывая его частный характер.


person Grogh    schedule 28.09.2010    source источник


Ответы (1)


Удалось найти решение, возможно, не идеальное с учетом OpenXML, но будет работать для того, что мне нужно.

     Microsoft.Office.Interop.Word.Application a = new Microsoft.Office.Interop.Word.Application ();
     Document d = a.Documents.Open 
        ( "afile.docx", 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing, 
          Type.Missing );

     d.ActiveWindow.Selection.WholeStory ();
     d.Activate ();

     foreach ( InlineShape isp in d.InlineShapes)
     {
        Console.WriteLine 
           ( "{0}: {1}, {2}", 
             isp.OLEFormat.Object.Name, 
             isp.OLEFormat.Object.Caption, 
             isp.OLEFormat.Object.Value );
     }
person Grogh    schedule 28.09.2010