我有一个.docx模板,我需要用C#填充。该模板的某些部分带有单选按钮组,如下所示:
我使用的是开放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的元素,但是我没有找到允许我操纵其值的属性或方法:
有人可以帮我这个忙吗?
谢谢。
问题中显示的选项按钮是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二进制文件格式。