C# 选中OpenXML Sdk VML集复选框

C# 选中OpenXML Sdk VML集复选框,c#,.net,excel,openxml,C#,.net,Excel,Openxml,我必须选中电子表格文档中vmlDrawing中的复选框 该代码在Office 2010中非常完美,但在使用Office 2007打开文档时,复选框未选中 怎么做 从我在文档控件中读到的内容来看,PropertiesPart仅为Office 2010定义,因此2007将忽略它 您可以手动编辑文件vmlDrawingPart1.xml(文本编辑,不使用OpenXML API) 您可以在以下表格中找到文档中的复选框: ControlPropertiesPart c2 = util.getCheckBo

我必须选中电子表格文档中vmlDrawing中的复选框

该代码在Office 2010中非常完美,但在使用Office 2007打开文档时,复选框未选中


怎么做

从我在文档控件中读到的内容来看,PropertiesPart仅为Office 2010定义,因此2007将忽略它

您可以手动编辑文件vmlDrawingPart1.xml(文本编辑,不使用OpenXML API)

您可以在以下表格中找到文档中的复选框:

ControlPropertiesPart c2 = util.getCheckBoxByLabel(worksheetPart, "ENV"); 
c2.FormControlProperties.Checked = DocumentFormat.OpenXml.Office2010.Excel.CheckedValues.Checked; 
worksheetPart.Worksheet.Save(); 

从我在文档ControlPropertiesPart中读到的内容来看,PropertiesPart仅为Office 2010定义,因此2007将忽略它。请发布util.getCheckBoxByLabel的内容,我目前正面临类似问题。
<x:ClientData ObjectType="Checkbox">
   <x:SizeWithCells/>
   <x:Anchor>
    6, 38, 17, 15, 8, 89, 18, 12</x:Anchor>
   <x:AutoFill>False</x:AutoFill>
   <x:AutoLine>False</x:AutoLine>
   <x:TextVAlign>Center</x:TextVAlign>

   <x:NoThreeD/>
  </x:ClientData>
<x:Checked>1</x:Checked>
VmlDrawingPart vmlDrawingPart1 = part.GetPartById("rId8") as VmlDrawingPart;
GenerateVmlDrawingPart1Content(vmlDrawingPart1);


private void GenerateVmlDrawingPart1Content(VmlDrawingPart vmlDrawingPart1)
{
        System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(vmlDrawingPart1.GetStream(System.IO.FileMode.OpenOrCreate), System.Text.Encoding.UTF8);
        writer.WriteRaw(vml2007);
        writer.Flush();
        writer.Close();
}