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

VSTO实现向Word内容控件追加XML内容而非覆盖的方法

解决Word内容控件中追加XML内容的问题

问题出在cc.Range.InsertXML默认会替换整个Range范围内的内容,所以你循环里每次插入都会覆盖之前的内容,最后只剩最后一段XML。要实现追加,关键是每次插入后把Range定位到当前内容的末尾,再插入下一段。

修改后的代码如下:

foreach (ContentControl cc in targetDoc.ContentControls)
{
    if (cc.Tag == "X_Placeholder")
    {
        // 可选:如果需要先清空内容控件原有内容,保留这行;不需要则删除
        cc.Range.Text = "";
        foreach (var tbContent in textBrickContentList)
        {
            // 将Range折叠到当前内容的末尾,避免替换原有内容
            cc.Range.Collapse(WdCollapseDirection.wdCollapseEnd);
            cc.Range.InsertXML(tbContent);
        }
    }
}

关键说明

  • WdCollapseDirection.wdCollapseEnd会把Range的起始和结束位置都移到现有内容的最后,这样下一次InsertXML就会在末尾追加内容,而非替换整个Range。
  • 如果需要保留内容控件原本的内容,直接删掉cc.Range.Text = ""这一行即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:35:29