全部,
我的要求是打开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打开?