【问题标题】:How do I use open xml sdk in my mvc project?如何在我的 mvc 项目中使用 open xml sdk?
【发布时间】:2013-01-29 19:39:25
【问题描述】:

在努力让我的 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 曲线球伤害了我的精神状态。提前致谢。帮助!

【问题讨论】:

    标签: c# asp.net .net visual-studio-2010 sdk


    【解决方案1】:

    OpenXml SDK 可以让您这样做,但您可能需要考虑在 Word 中编辑模板时可能出现的特殊情况,例如将相同样式的文本拆分为多个元素。

    首先去下载Open XML addin for VS2010。它会让你看到你正在使用的结构 - 在 VS2010 中拖动一个 .docx 文件,在包中查找 document.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,尤其是在您的文档很复杂的情况下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 2016-08-13
      • 2018-03-03
      相关资源
      最近更新 更多