我有需要从 ASP.NET 应用程序在 Microsoft 文字处理器中打开文档的要求。到目前为止,我能够显示所有文档,但我不确定如何在 ASP.NET 应用程序中打开文档。如果我需要执行更新和重定位等进一步操作,请告知并让我知道它在未来的前景中有多灵活。
3 回答
Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。
http://support.microsoft.com/kb/257757
有设计用于在服务器环境中处理 Office 文档的第三方组件。
Aspose 很受欢迎,虽然我从未亲自使用过它们
http://www.aspose.com/categories/.net-components/aspose.words-for-.net/default.aspx
更新
ASP.Net 应用程序支持 Open XML,这是一个不错的选择(尽管我相信 Aspose 可能更易于使用)。请参阅@Seth 关于 Open XML 的回答,请参阅@Rob 关于 Aspose 与 Open XML 的经验的回答。
如果文档来自 Office 2007 或更高版本(docx、xlsx 等),那么您可以在 .Net 中以编程方式处理这些文件。
研究室开放 XML。
Microsoft 为 Microsoft Office 提供了Open XML SDK 2.0。
下面提供了一个来自msdn的示例:
WordprocessingDocument wordprocessingDocument =
WordprocessingDocument.Open(filepath, true);
Body body = wordprocessingDocument.MainDocumentPart.Document.Body;
Paragraph para = body.AppendChild(new Paragraph());
Run run = para.AppendChild(new Run());
run.AppendChild(new Text(txt));
wordprocessingDocument.Close();
我有一个 Aspose.Total 许可证,它允许我创建 Word、PDF 文档等。我最初尝试了 Open XML,但没有足够的示例来满足我的需要。以 Open XML 示例的形式对 Office 2010 的支持充其量是微不足道的。归根结底,当您可以花 800 美元购买一个库时,为什么要使用 Open XML 重新发明大量代码(如果您自己编写代码,则没有生产支持)?如果我得到每小时 100 美元的报酬,而我花了超过 8 个小时来完成 Aspose 可以做的事情,那我就亏本了。我的建议是,如果您需要为您的应用程序提供生产支持并希望立即启动该项目,请尝试使用 Aspose。