如何使用Excel导出功能部署我的应用程序?

时间:2011-12-05 14:01:58

标签: asp.net excel interop export

我创建了一个ASP.Net应用程序,它使用excel引用(Microsoft.Office.Interop.Excel, Version=12.0.0.0)以.xls格式导出文件。如果托管服务器安装了MS Office,它工作正常。

我的问题是,我想部署我的应用程序,而无需在托管服务器上安装完整的MS Office。我想在我的bin文件夹中复制一些Dll来解决依赖关系。

我在未预安装MS Office的服务器上部署应用程序时出现此错误。

  

错误:无法加载文件或程序集'office,Version = 12.0.0.0,   Culture = neutral,PublicKeyToken = 71e9bce111e9429c'或其中一个   依赖。系统找不到指定的文件。

是否有人遇到过这个问题并找到了解决方法?

由于

3 个答案:

答案 0 :(得分:2)

您必须安装Office才能使用互操作库。有关Using Microsoft.office.interop.excel.dll without installing Office

的详细信息,请参阅此处

答案 1 :(得分:2)

Using Interop in Server scenarions (like ASP.NET) might technichally work sometimes BUT is NOT supported by MS

有许多选项可以在没有Interop的情况下读取/编辑/创建Excel文件:

MS提供免费的OpenXML SDK V 2.0 - 请参阅http://msdn.microsoft.com/en-us/library/bb448854%28office.14%29.aspx(仅限XLSX)

这可以读取+写入MS Office文件(包括Excel)。

另一个免费选项见http://www.codeproject.com/KB/office/OpenXML.aspx(仅限XLSX)

如果你需要更多像处理旧的Excel版本(如XLS,不仅仅是XLSX),渲染,创建PDF,公式等,那么有不同的免费和商业库,如ClosedXML(免费,仅限XLSX), EPPlus(免费,仅限XLSX),Aspose.CellsSpreadsheetGearLibXLFlexcel等。

答案 2 :(得分:1)

我过去曾使用过EPPlus来处理Excel文件:

http://epplus.codeplex.com/

它将支持Excel 2007和2011而无需安装Excel。支持从Excel读取数据以及将数据写入Excel。附带一些很好的例子。