0

C#でOpen XML SDKを使用して、特定の数のチェックボックスを作成したいと思います。どうすればいいですか?

例:

(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;
}
4

1 に答える 1

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);

チェックボックスの後に必要なテキストは、上記のコードの後に​​来ます

于 2013-02-12T19:44:51.647 に答える