OpenXml如何替换字段码值

本文关键字:字段 替换 何替换 OpenXml | 更新日期: 2023-09-27 17:50:17

我有一个word文档,里面有一个邮件合并字段。
我试图用OpenXml的值替换邮件合并字段。

我可以选择字段使用:

FieldCode field = document.MainDocumentPart.RootElement.Descendants<FieldCode>().where(x => x.Text == "MERGEFIELD  Field_B  '* MERGEFORMAT")

但是没有办法改变值一旦我找到正确的字段?更改text属性只会更改字段代码,而不会更改值。

下面是word文档中显示该字段的xml。

<w:r w:rsidR="00BE3C49">
    <w:rPr>
        <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="begin" />
</w:r>
<w:r w:rsidR="00BE3C49">
    <w:rPr>
        <w:noProof />
    </w:rPr>
    <w:instrText xml:space="preserve"> MERGEFIELD  Field_B  '* MERGEFORMAT </w:instrText>
</w:r>
<w:r w:rsidR="00BE3C49">
    <w:rPr>
        <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="separate" />
</w:r>
<w:r w:rsidR="00BE3C49">
    <w:rPr>
        <w:noProof />
    </w:rPr>
    <w:t>«Field_B»</w:t>
</w:r>
<w:r w:rsidR="00BE3C49">
    <w:rPr>
        <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="end" />
</w:r>

OpenXml如何替换字段码值

您可以尝试http://www.nuget.org/packages/docx4j.NET/3.0.1