[英]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中選中一個復選框的位置。
該代碼與Office 2010完美匹配,但在我打開文檔時使用Office 2007時未選中該復選框。
怎么做?
根據我在文檔中閱讀的內容,ControlPropertiesPart僅為Office 2010定義,因此2007將忽略它。
您可以手動編輯(文本編輯,而不使用OpenXML API文件vmlDrawingPart1.xml
您可以找到以下格式的文檔中的復選框:
<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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.