c#openXML向表w:instrText添加交叉引用

c#openXML向表w:instrText添加交叉引用,c#,openxml,C#,Openxml,我试图在表格中添加标题,但在其他帖子中找不到我想要的内容 这就是我试图生成的XML <w:p> <w:r> <w:fldChar w:fldCharType="begin" /> </w:r> <w:r> <w:instrText xml:space="preserve"> REF TableRef \h </w:i

我试图在表格中添加标题,但在其他帖子中找不到我想要的内容

这就是我试图生成的XML

    <w:p>
        <w:r>
            <w:fldChar w:fldCharType="begin" />
        </w:r>
        <w:r>
            <w:instrText xml:space="preserve"> REF TableRef \h </w:instrText>
        </w:r>
        <w:r>
            <w:fldChar w:fldCharType="separate" />
        </w:r>
        <w:r>
            <w:t xml:space="preserve">Table </w:t>
            </w:r>
            <w:fldSimple w:instr="SEQ Table">
                <w:r>
                    <w:rPr>
                        <w:noProof />
                    </w:rPr>
                    <w:t xml:space="preserve"> </w:t>
                </w:r>
            </w:fldSimple>
            <w:r>
            <w:fldChar w:fldCharType="end" />
        </w:r>
    </w:p>

谢谢

编写正确的C#代码以生成特定的开放式XML文档等问题可以通过使用开放式XML SDK附带的示例文档和文档反射程序轻松解决:

  • 下载并安装最新版本的开放式XML SDK()
  • 打开位于
    C:\Program Files(x86)\Open XML SDK\V2.5\Tool
    (安装到默认位置时)中的Open XML SDK生产力工具(
    OpenXmlSdkTool.exe
  • 创建具有所需格式/内容的示例文档,并在工具中打开示例文档
  • 单击反映代码
  • 将生成的代码复制到项目中,并根据需要进行调整,例如用内容替换静态文本

  • 编写正确的C#代码以生成特定的开放式XML文档等问题可以通过使用示例文档和开放式XML SDK附带的文档反射器轻松解决:

  • 下载并安装最新版本的开放式XML SDK()
  • 打开位于
    C:\Program Files(x86)\Open XML SDK\V2.5\Tool
    (安装到默认位置时)中的Open XML SDK生产力工具(
    OpenXmlSdkTool.exe
  • 创建具有所需格式/内容的示例文档,并在工具中打开示例文档
  • 单击反映代码
  • 将生成的代码复制到项目中,并根据需要进行调整,例如用内容替换静态文本

  • 对于那些多年后在这个问题上跌跌撞撞的人来说。与
    相对应的OpenXml类是

    因此,要回答最初的问题,行:

    //todo instrTxt bookmark ref
    
    应替换为:

    new DocumentFormat.OpenXml.Wordprocessing.Run(new FieldCode(" REF TableRef \\h ") { Space = SpaceProcessingModeValues.Preserve }),
    

    其中
    TableRef
    是书签的名称。

    对于多年后遇到这个问题的其他人。与
    相对应的OpenXml类是

    因此,要回答最初的问题,行:

    //todo instrTxt bookmark ref
    
    应替换为:

    new DocumentFormat.OpenXml.Wordprocessing.Run(new FieldCode(" REF TableRef \\h ") { Space = SpaceProcessingModeValues.Preserve }),
    

    其中
    TableRef
    是书签的名称。

    您看过OpenXML SDK附带的文档反射器了吗?只需在Word中创建所需的输出,并使用文档反射器打开该文档。然后,它将向您展示生成该输出的源代码。谢谢,我希望我能早点看到它。在我所看的任何一个例子中,我都没有看到这一点。把它作为答案贴出来,我会给你评分的。你有没有看过OpenXMLSDK附带的文档反射器?只需在Word中创建所需的输出,并使用文档反射器打开该文档。然后,它将向您展示生成该输出的源代码。谢谢,我希望我能早点看到它。在我所看的任何一个例子中,我都没有看到这一点。把它作为答案贴出来,我会给你评分的。