OpenXML Sdk VML Set CheckBox Checked
ControlPropertiesPart c2 = util.getCheckBoxByLabel(worksheetPart, "ENV"); c2.FormControlProperties.Checked = DocumentFormat.OpenXml.Office2010.Excel.CheckedValues.Checked; worksheetPart.Worksheet.Save();
我必须在电子表格文档中检查vmlDrawing中的checkbox。
该代码是完美的Office 2010,但使用Office 2007时,我打开文档checkbox没有选中。
怎么做?
谢谢
从我在文档中读取的ControlPropertiesPart只是为Office 2010定义的,因此2007将忽略它。
你可以手动编辑(文本编辑,不使用OpenXML API的文件vmlDrawingPart1.xml
你可以在这个表格中find文档中的checkbox:
<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>
作为x:ClientData的子标签
我用c#做了这样的事情:
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(); }