You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于.NET Core在服务器端修改Word内容控件?

在.NET Core服务器端设置Word内容控件内容的实现方案

由于NPOI仅支持内容控件的只读访问,推荐使用Open XML SDK for .NET(微软官方开源库)或封装后的Xceed.Document.NET库来实现读写操作,以下是具体方案:

方案一:使用Open XML SDK(官方推荐)

这是微软针对Office Open XML格式的原生操作库,完全支持.NET Core,功能完整且无授权限制。

1. 安装NuGet包

通过.NET CLI安装:

dotnet add package DocumentFormat.OpenXml

2. 核心代码示例

以下代码通过内容控件的Tag属性定位目标控件,并修改其内容:

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;

public void UpdateContentControl(string docFilePath, string controlTag, string newContent)
{
    // 以可写模式打开Word文档
    using (var wordDoc = WordprocessingDocument.Open(docFilePath, true))
    {
        var mainPart = wordDoc.MainDocumentPart;
        var doc = mainPart.Document;

        // 遍历所有内容控件,匹配指定Tag
        var targetControl = doc.Descendants<SdtElement>()
            .FirstOrDefault(sdt => sdt.SdtProperties?.GetFirstChild<Tag>()?.Val == controlTag);

        if (targetControl == null) return;

        // 清空控件原有内容
        targetControl.SdtContent.RemoveAllChildren();

        // 插入新内容(以纯文本段落为例)
        var paragraph = new Paragraph();
        var run = new Run(new Text(newContent));
        paragraph.Append(run);
        targetControl.SdtContent.Append(paragraph);

        // 保存修改
        doc.Save();
    }
}

注意事项

  • 不同类型的内容控件(如纯文本、富文本、下拉框)对应的SdtContent子元素不同,需根据控件类型调整内容插入逻辑。例如纯文本控件可直接操作SdtContentText;
  • 若需更精准定位,可通过内容控件的Id属性(SdtProperties下的Id元素)替代Tag,避免Tag重复的问题。

方案二:使用Xceed.Document.NET(简化开发)

该库封装了Open XML SDK,提供更简洁的API,适合快速开发场景(非商业项目可免费使用,商业项目需获取授权)。

1. 安装NuGet包

dotnet add package Xceed.Document.NET

2. 核心代码示例

using Xceed.Document.NET;

public void UpdateContentControlWithDocX(string docFilePath, string controlTag, string newContent)
{
    using (var document = DocX.Load(docFilePath))
    {
        var targetControl = document.ContentControls.FirstOrDefault(cc => cc.Tag == controlTag);
        if (targetControl != null)
        {
            targetControl.Text = newContent;
            document.Save();
        }
    }
}

内容的提问来源于stack exchange,提问作者JacquesB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:36:21