C# 获取.docx中的所有内容控件(不含word)

C# 获取.docx中的所有内容控件(不含word),c#,ms-word,openxml,openxml-sdk,C#,Ms Word,Openxml,Openxml Sdk,我必须在Word文档中获取所有内容控件并插入信息,但运行该程序的PC不需要安装Word 我试过: List<SdtContentText> lista = parteDocumento.Document.Descendants<SdtContentText>().ToList(); foreach (SdtContentText objeto in lista) List lista=parteDocumento.Document.subjects().ToList(

我必须在Word文档中获取所有内容控件并插入信息,但运行该程序的PC不需要安装Word

我试过:

List<SdtContentText> lista = parteDocumento.Document.Descendants<SdtContentText>().ToList();
 foreach (SdtContentText objeto in lista)
List lista=parteDocumento.Document.subjects().ToList();
foreach(列表A中的SdtContentText对象)
并将SdtContentText更改为SdtBlock

编辑:

现在我可以获得ContentControls,但无法编辑其内部文本

    List <OpenXmlElement> lista = parteDocumento.Document.Body.ToList().FirstOrDefault<OpenXmlElement>().ToList();

                        foreach (var objeto in lista)
                        {

                            if (objeto != null && objeto is SdtRun)
                            {
                                SdtRun objeto2 = (SdtRun)objeto; 
                    .....
List lista=parteDocumento.Document.Body.ToList().FirstOrDefault().ToList();
foreach(列表中的var objeto)
{
if(objeto!=null&&objeto为SdtRun)
{
SdtRun objeto2=(SdtRun)objeto;
.....

获取所有文本内容控件并进行编辑

 using (WordprocessingDocument doc = WordprocessingDocument.Open(document, true))
                    {

                        MainDocumentPart parteDocumento = doc.MainDocumentPart;

                        foreach (SdtElement objeto in parteDocumento.Document.Descendants<SdtElement>().ToList())
                        {

                        foreach (Text t in objeto.Descendants<Text>().ToList())
                        {

                            if (t.Text == "nombre")
                            {
                                t.Text = persona.nombre;
                            }
                            if (t.Text == "primerApellido")
                            {
                                t.Text = persona.primerApellido;
                            }
                            if (t.Text == "segundoApellido")
                            {
                                t.Text = persona.segundoApellido;
                            }
                            if (t.Text == "nacionalidad")
                            {
                                t.Text = persona.nacionalidad;
                            }

                        }

                        }
                    parteDocumento.Document.Save();
                    }
使用(WordprocessingDocument=WordprocessingDocument.Open(document,true))
{
MainDocumentPart parteDocumento=doc.MainDocumentPart;
foreach(parteDocumento.Document.subjects().ToList()中的SdtElement对象)
{
foreach(objeto.subjects().ToList()中的文本t)
{
如果(t.Text==“nombre”)
{
t、 Text=persona.nombre;
}
如果(t.Text==“primerApellido”)
{
t、 Text=persona.primerApellido;
}
如果(t.Text==“segundoApellido”)
{
t、 Text=persona.segundoApellido;
}
如果(t.Text==“国家ID”)
{
t、 Text=persona.nacionalidad;
}
}
}
parteDocumento.Document.Save();
}