Word打开XML SDK,设置下拉列表的选择值。

问题描述 投票:0回答:1

简单地说,我有一个c:dropdowntest.docx文件,里面只有一个下拉列表。下拉列表有两个选项,"选项1 "和 "选项2"。保存文件时,"选项1 "被选中。如何使用C#中的Open XML SDK来选择 "Option2"?

这里有一个开始的代码,所以我能够参考下拉列表的例子。

private static void LoopElements(WordprocessingDocument wordDocument)
    {
        List<SdtElement> sdtelements = wordDocument.MainDocumentPart.Document.Descendants<SdtElement>().ToList();
        foreach (var contentcontrol in sdtelements)
        {
            var listitems = contentcontrol.Descendants<ListItem>().ToList();
            if (listitems.Count > 0)
            {
                SdtRun xStdRun = (SdtRun)contentcontrol;
c# drop-down-menu ms-word openxml-sdk
1个回答
1
投票

下面是如何将之前选择的选项替换为最后一个选项的方法。listitems:

private static void LoopElements(WordprocessingDocument wordDocument)
{
    List<SdtElement> sdtelements = wordDocument.MainDocumentPart.Document.Descendants<SdtElement>().ToList();
    foreach (var contentcontrol in sdtelements)
    {
        var listitems = contentcontrol.Descendants<ListItem>().ToList();
        if (listitems.Count > 0)
        {
            SdtRun xStdRun = (SdtRun)contentcontrol;
            SdtContentRun xStdContentRun = xStdRun.SdtContentRun;
            Text xStdContentText = xStdContentRun.GetFirstChild<Run>().GetFirstChild<Text>();
            xStdContentText.Text = listitems.Last().DisplayText;
        }
    }
}

另外,为了以防万一,你也许应该检查 这些答案 以及,他们解决了一些问题,比如说如果你没有选定的选项怎么办(没有任何的 Run 中的元素 SdtContentRun),或者如果你有 SdtBlock 而不是 SdtRun、等。

© www.soinside.com 2019 - 2024. All rights reserved.