从asp.net web应用程序访问Interop.office.excel库

我有一个asp.net的Web应用程序,并部署在Web服务器上。 在一个场景中,我有一个固定的格式Excel文件夹中的服务器上的工作表。 在运行时即时通过interop.office.excel库的帮助下写入单元格。 最初在服务器上没有安装excel,那么我们已经安装了excel,并且从组件服务中给了COM组件充分的权利。 但现在我们正在得到错误。 如何解决这个问题?

检测产品“{90110409-6000-11D3-8CFE-0150048383C9}”,function“OfficeUserData”,组件“{4A31E933-6F67-11D2-AAA2-00A0C90F57B0}”失败。 资源“HKEY_CURRENT_USER \ Software \ ODBC \ ODBC.INI \ MS Access数据库”不存在。

检测到产品“{90110409-6000-11D3-8CFE-0150048383C9}”,function“ExcelUserData”,组件“{8ADD2C96-C8B7-11D1-9C67-0000F81F1B38}”失败。 资源“HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 11.0 \ Excel \ UserData”不存在。

MS不支持Interop在服务器场景(如ASP.NET)中 。

有很多选项可以在没有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等。