如何使用Open XML在docx上操作OptionButton /单选按钮? (C#)

问题描述 投票:0回答:1

我有一个.docx模板,我需要用C#填充。该模板的某些部分带有单选按钮组,如下所示:

enter image description here

我使用的是开放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#操作这些元素。我试图遍历doc元素,并找到了一个名称为Control类型的OptionButton的元素,但是我没有找到允许我操纵其值的属性或方法:

enter image description here

有人可以帮我这个忙吗?

谢谢。

c# .net openxml docx
1个回答
0
投票

问题中显示的选项按钮是ActiveX控件,最初是设计用于VBA用户窗体的。然后,对Office文档表面进行了修改,以允许在文档中使用它们,同时保留其编程界面。

ActiveX控件未由Office Open XML定义。与VBA一样,它们仍保持专有的二进制格式(Office 2007之前的版本)。

这里是“选项按钮”的Word Open XML的摘录:

<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

© www.soinside.com 2019 - 2024. All rights reserved.