获取.docx格式的所有内容控件,不带word

本文关键字:控件 不带 word docx 格式 获取 | 更新日期: 2023-09-27 18:14:03

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

I tried with:

List<SdtContentText> lista = parteDocumento.Document.Descendants<SdtContentText>().ToList();
 foreach (SdtContentText objeto in lista)

和将SdtContentText更改为SdtBlock

编辑:

现在我可以获得内容控件,但我不能编辑他们的innerText

    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; 
                    .....

获取.docx格式的所有内容控件,不带word

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

 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();
                    }