Как управлять кнопкой OptionButton / Radio на docx с помощью Open XML? (C#) - PullRequest
0 голосов
/ 06 мая 2020

У меня есть шаблон .docx, который мне нужно заполнить C#. В этом шаблоне есть несколько разделов с группами переключателей, например:

enter image description here

Я использую open XML, я проверил xml и я думаю, что нашел переключатели:

          <w:p w14:paraId="6E7C5D2C" w14:textId="2740F2E7" w:rsidR="0085589C" w:rsidRPr="00055073" w:rsidRDefault="0085589C" w:rsidP="00465D62">
              <w:r>
                 <w:object w:dxaOrig="225" w:dyaOrig="225" w14:anchorId="28DEEE36">
                    <v:shape id="_x0000_i1053" type="#_x0000_t75" style="width:78pt;height:17.25pt" o:ole="">
                       <v:imagedata r:id="rId15" o:title="" />
                    </v:shape>
                    <w:control r:id="rId16" w:name="OptionButton3" w:shapeid="_x0000_i1053" />
                 </w:object>
              </w:r>
           </w:p>

Я не могу понять, как управлять этими элементами с помощью C#. Я попытался выполнить итерацию по элементам do c и нашел элемент с именем OptionButton типа Control, но я не нашел свойства или метода, позволяющего управлять его значением:

enter image description here

Кто-нибудь может мне помочь с этим, пожалуйста?

Спасибо.

1 Ответ

1 голос
/ 08 мая 2020

Кнопки параметров, показанные в вопросе, представляют собой элементы управления ActiveX , изначально предназначенные для использования в пользовательских формах VBA. Затем поверхности офисных документов были адаптированы, чтобы их можно было использовать в документах, сохранив их программный интерфейс.

Элементы управления ActiveX не определены в Office Open XML. Как и все VBA, они остаются в проприетарном двоичном формате (до Office 2007).

Вот отрывок из Word Open XML для кнопки Option:

<pkg:part pkg:name="/word/activeX/activeX1.bin" pkg:contentType="application/vnd.ms-office.activeX">
<pkg:binaryData>0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAA
EAAAAgAAAAEAAAD+////AAAAAAAAAAD/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////

Чтобы «читать» такой контент, необходимо иметь доступ и понимать форматы двоичных файлов Word и Office.

Ссылка, например: https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-doc/ccd7b486-7881-484c-a137-51170af7cc22

...