如何在我的 mvc 项目中使用开放的 xml sdk

本文关键字:sdk xml 我的 mvc 项目 | 更新日期: 2023-09-27 17:56:37

在努力让我的word文档在我的本地计算机上正常运行之后,我知道我的服务器没有Microsoft Office。我正在尝试打开、修改、保存和显示文档。我发现OPEN XML SDK 2.0是要走的路。我今天早上刚刚下载了这个程序,我不知道如何将它集成到我的代码中。我该怎么做?

我在盲目飞行,这就是我想做的。此代码适用于办公室

object pathToUse = Server.MapPath("~/Document/TemplateX.docx");
object pathToSave = Server.MapPath("~/Document/FinishedX.docx");
//open file
tempDoc = wordApp.Documents.Open(ref pathToUse, ref missing,
   ref missing, ref missing, ref missing, ref missing,
   ref missing, ref missing, ref missing, ref missing,
   ref missing, ref isVisible, ref missing, ref missing,
   ref missing, ref missing);
//Make edits - I had this for my word document
this.FindAndReplace(Application wordApp, "<date>", DateTime.Today.ToShortDateString());
//save
tempDoc.SaveAs(ref pathToSave, ref missing,
   ref missing, ref missing, ref missing, ref missing,
   ref missing, ref missing, ref missing, ref missing,
   ref missing, ref isVisible, ref missing, ref missing,
   ref missing, ref missing);
//return file in my Controller
return File(pathToSave.ToString(), "docx");

只是添加了代码来表明我有需要的东西,但缺少Microsoft曲线球伤害了我的心理滚动。提前谢谢。帮助!

如何在我的 mvc 项目中使用开放的 xml sdk

OpenXml SDK 将允许您执行此操作,但您可能需要考虑在 Word 中编辑模板时可能出现的特殊情况,例如将样式相同的文本拆分为多个元素。

首先下载VS2010的Open XML插件。它将让您看到您正在使用的结构 - 在VS2010中拖动一个.docx文件,查找文档.xml在包内,按Ctrl-K-D格式化文档以提高可读性。

将 SDK 附带的 DLL 添加到项目中。

从流中打开 Word 文档,确保在此之前复制模板文件:

using (var document = WordprocessingDocument.Open(stream, true))
                {
...
}// document auto-saves when done

替换标签内的文本:

List<Text> textElements = document.MainDocumentPart.Document.Body.Descendants<Text>()
    .Where(t=>t.InnerText == "<date>").ToList();
textElements.ForEach(te=>te.InnerText = DateTime.Today.ToShortDateString());

此示例将帮助你入门,但希望看到 Word 以你意想不到的奇怪方式构建其 XML,尤其是在文档很复杂的情况下。