使用OpenXML创建单词

时间:2017-11-26 10:17:20

标签: c# .net ms-word vsto openxml

我是VSTO和OpenXML的新手,我想开发一些Word插件。这个加载项应该使用OpenXML,那么是否可以编辑打开的文档? 例如,我已经打开了Word文档,我想在按钮点击时使用OpenXML替换一些文本。

所以我有这段代码。

var fileFullName = Globals.ThisAddIn.Application.ActiveDocument.FullName;
Globals.ThisAddIn.Application.ActiveDocument.Close(WdSaveOptions.wdSaveChanges, WdOriginalFormat.wdOriginalDocumentFormat, true);

        //edit document using OpenXml here

Globals.ThisAddIn.Application.Documents.Open(fileFullName);

我发现这是使用OpenXML向Word添加文本 How to: Open and add text to a word processing document (Open XML SDK)

但我无法弄清楚如何让它们协同工作。

任何人都可以帮助我,谢谢

1 个答案:

答案 0 :(得分:0)

这就是我解决它的方法:

private void button1_Click(object sender, RibbonControlEventArgs e)
        {
            var fileFullName = Globals.ThisAddIn.Application.ActiveDocument.FullName;

            Globals.ThisAddIn.Application.ActiveDocument.Close(WdSaveOptions.wdSaveChanges, WdOriginalFormat.wdOriginalDocumentFormat, true);


            OpenAndAddTextToWordDocument(fileFullName, "[USER_NAME]");


            Globals.ThisAddIn.Application.Documents.Open(fileFullName);
        }

        public static void OpenAndAddTextToWordDocument(string filepath, string txt)
        {
            // Open a WordprocessingDocument for editing using the filepath.
            WordprocessingDocument wordprocessingDocument =
                WordprocessingDocument.Open(filepath, true);

            // Assign a reference to the existing document body.
            Body body = wordprocessingDocument.MainDocumentPart.Document.Body;

            // Add new text.
            DocumentFormat.OpenXml.Wordprocessing.Paragraph para = body.AppendChild(new DocumentFormat.OpenXml.Wordprocessing.Paragraph());
            Run run = para.AppendChild(new Run());
            run.AppendChild(new Text(txt));

            // Close the handle explicitly.
            wordprocessingDocument.Close();
        }

    }