2013-02-12 111 views
0

我想在C#中使用Open XML SDK創建一定數量的複選框。我會怎麼做?如何使用Open XML SDK在C#中創建複選框

實施例:

(Checkbox) - Shoes 

(Checkbox) - Shirt 

複選框計數也變化。我在閱讀模板文檔,然後進行編輯以返回。我有這樣的事情至今:

string documentText; 
using (StreamReader reader ...) 
{ 
    documentText = reader.ReadToEnd(); 
} 

string addClothes = ""; 
Run newCheckBox = GenerateRun(); 
foreach(var item in ClothesList) 
{ 
    addClothes = item.clothing; 
    //MY DILEMMA 
    documentText = documentText.Replace("##clothing##", newCheckBox + addClothes + "NewLine"); 
} 


public Run GenerateRun() 
{ 
    Run run1 = new Run() { RsidRunProperties = "004C0D9A", RsidRunAddition = "00850FA5" }; 
    FieldCode fieldCode1 = new FieldCode() { Space = SpaceProcessingModeValues.Preserve }; 
    fieldCode1.Text = " FORMCHECKBOX "; 

    run1.Append(fieldCode1); 
    return run1; 
} 

回答

0

使用的OpenXML SDK,我認爲它是這樣的: (原始複製/粘貼 - 的-1636166143值可能是遙遠)

using w14 = DocumentFormat.OpenXml.Office2010.Word 

      SdtRun sdtRun1 = new SdtRun(); 

      SdtProperties sdtProperties1 = new SdtProperties(); 
      SdtId sdtId1 = new SdtId(){ Val = -1636166143 }; 

      W14.SdtContentCheckBox sdtContentCheckBox1 = new W14.SdtContentCheckBox(); 
      W14.Checked checked1 = new W14.Checked(){ Val = W14.OnOffValues.Zero }; 
      W14.CheckedState checkedState1 = new W14.CheckedState(){ Font = "MS Gothic", Val = "2612" }; 
      W14.UncheckedState uncheckedState1 = new W14.UncheckedState(){ Font = "MS Gothic", Val = "2610" }; 

      sdtContentCheckBox1.Append(checked1); 
      sdtContentCheckBox1.Append(checkedState1); 
      sdtContentCheckBox1.Append(uncheckedState1); 

      sdtProperties1.Append(sdtId1); 
      sdtProperties1.Append(sdtContentCheckBox1); 

      SdtContentRun sdtContentRun1 = new SdtContentRun(); 

      Run run1 = new Run(); 

      RunProperties runProperties1 = new RunProperties(); 
      RunFonts runFonts1 = new RunFonts(){ Hint = FontTypeHintValues.EastAsia, Ascii = "MS Gothic", HighAnsi = "MS Gothic", EastAsia = "MS Gothic" }; 

      runProperties1.Append(runFonts1); 
      Text text1 = new Text(); 
      text1.Text = "☐"; 

      run1.Append(runProperties1); 
      run1.Append(text1); 

      sdtContentRun1.Append(run1); 

您在複選框之後想要的任何文本來自上面的代碼