我有一个asp.net Web应用程序并部署在Web服务器上。在一个场景中,我有一个固定格式的Excel工作表,它位于Web文件夹的服务器上。在运行时我在interop.office.excel
库的帮助下写入单元格。最初在服务器上没有安装excel,然后我们安装了excel并从组件服务中获得COM组件的完整权限。但现在我们正在低于错误。怎么解决这个问题?
检测产品'{90110409-6000-11D3-8CFE-0150048383C9}',功能 'OfficeUserData',组件'{4A31E933-6F67-11D2-AAA2-00A0C90F57B0}' 失败。资源'HKEY_CURRENT_USER \ Software \ ODBC \ ODBC.INI \ MS Access Database \'不存在。
检测产品'{90110409-6000-11D3-8CFE-0150048383C9}',功能 'ExcelUserData',组件'{8ADD2C96-C8B7-11D1-9C67-0000F81F1B38}' 失败。资源 'HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 11.0 \ Excel \ UserData'可以 不存在。
答案 0 :(得分:4)
<强> Interop is not supported in sever-scenarios (like ASP.NET) 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.Cells,SpreadsheetGear,LibXL和Flexcel等。