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

我已经做了一个使用Excel参考( Microsoft.Office.Interop.Excel, Version=12.0.0.0 )以.xls格式导出文件的ASP.Net应用程序。 如果托pipe服务器安装了MS Office,它工作正常。

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

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

错误:无法加载文件或程序集“Office,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c”或其某个依赖项。 该系统找不到指定的文件。

有没有人遇到这个问题,并find一些解决办法?

谢谢

您必须安装Office才能使用互操作库。 请参阅这里以获取更多有关使用Microsoft.office.interop.excel.dll而不安装Office的信息

在服务器场景(如ASP.NET)中使用Interop可能技术上有效,但MS不支持

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

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

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

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

如果您需要处理较旧的Excel版本(如XLS,而不仅仅是XLSX),渲染,创buildPDF,公式等,那么您可能需要更多的免费和商业库,如ClosedXML (免费,仅限XLSX), EPPlus (免费,仅限XLSX) , Aspose.Cells , SpreadsheetGear , LibXL和Flexcel等来做到这一点。

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

http://epplus.codeplex.com/

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