簡體   English   中英

OpenXML Sdk VML設置復選框已選中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM