2016-11-06 311 views
0

我创建了一个读取excel电子表格并对数据执行操作的应用程序。我使用Excel 2010和2013创建了应用程序。我的公司最近去了Office 365。现在,当我运行我的应用程序时,出现下面列出的错误。我认为这与Microsoft.Office.Interop.Excel有关,但我无法找到关于此错误的任何信息以及如何解决此问题。如何在Visual Studio中使用C#访问Microsoft Excel 365

“检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败,原因如下:80040154类未注册(异常来自HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。”

+0

也许你应该更新你的Office开发工具。 – McNets

+0

#mcNets - 我有最新的Office开发工具,我可以找到安装,你知道Office 365工具的位置吗? – Cass

回答

0

如果你不需要控制excel应用程序本身,你真的不需要互操作。有关如何从xlsx工作表读取数据的信息,请参见this questionthis的答案。还有一个解释OleDb的neat article on codeproject

+0

#Nomenator - 你有这些选择的经验吗?你推荐Linq-to_Excel还是OleDbConnection? – Cass

+0

@Cass我使用Linq-to-Excel,因为它让我查询excel文件,就好像它是一个实体框架数据源,然后将文件映射到实体。我不知道幕后有多快或多慢,但直接与对象连接数据并使用linq的舒适性使得开发速度更快。 – Nomenator

+0

#Nomenator - 你知道Linq-to-Excel只能处理.xls文件吗?我有一个xlsx文件,我得到这个错误:“无法加载文件或程序集'LinqToExcel,Version = 1.10.1.0,Culture = neutral,PublicKeyToken = 9c8ea65a58f03f1f'或其依赖项之一。试图加载程序格式不正确。“ – Cass

0

我的计算机升级到Office 365时遇到了完全相同的异常。在我的C#代码中,我之前使用的是存储在“.xlsx”文件中的测试数据。

我将excel文件名切换为“.xls”,并运行相同的代码,利用Excel.Application和Microsoft.Office.Interop.Excel库中的其他类,它工作正常。

相关问题