使用OpenXML打开MS-Word文档,更改并保存回MS Word格式

时间:2019-07-05 07:12:01

标签: asp.net openxml

全部,

我的要求是打开Microsoft Word文档并修改一些内容,然后将该文档另存为Microsoft Word。

为此,我正在使用OpenXML并实现了它,但是在修改后将其另存为新文档时可以正常工作,但是我希望将修改后的文档作为Microsoft Word流,以便可以将其保存在Amazon S3上。

在下面的代码中,“ fuFile”是FileUploadControl,我正在使用需要修改的现有Microsoft Word文档。

 protected void btnSubmit_Click(object sender, EventArgs e)
{
    MemoryStream ms = new MemoryStream();
    fuFile.PostedFile.InputStream.CopyTo(ms);

    using (WordprocessingDocument document = WordprocessingDocument.Open(ms, true))
    {
        foreach (var para in document.MainDocumentPart.Document.Body.Elements<Paragraph>())
        {
            foreach (var run in para.Elements<Run>())
            {
                foreach (var text in run.Elements<Text>())
                {
                    if (text.Text.Contains("<content to find>"))
                    {
                        text.Text = "content to replace";
                    }
                }
            }
        }

        document.SaveAs(string.Format("d:\\modified_{0}.docx", DateTime.Now.Ticks));

        //using (var fileStream = File.Create(string.Format("d:\\modified_{0}.docx", DateTime.Now.Ticks)))
        //{
        //    using (StreamReader sr = new StreamReader(document.MainDocumentPart.GetStream()))
        //    {
        //        fileStream.Seek(0, SeekOrigin.Begin);
        //        sr.BaseStream.CopyTo(fileStream);
        //    }
        //}
    }
}

在这里,当我将修改后的文档另存为新文档时,它可以正常工作并在Microsoft Word中正常打开,但是在注释代码中,我在其中创建新文件并复制内容,然后将文件另存为.docx,但未在Microsoft Word中打开。

有什么主意我可以如何从修改后的文档生成流并将其保存在Amazon S3中,以便下载后仍可以Microsoft Word打开?

0 个答案:

没有答案