【发布时间】:2013-03-29 02:49:07
【问题描述】:
我正在将几个 VBA 项目转换为 Windows 窗体应用程序。我唯一的问题是 Excel 的某些功能对于应用程序来说是必不可少的,例如 R1C1 公式。我不想实例化 Excel 应用程序或访问已保存的工作表。所有数据都是通过查询 Oracle 数据库来检索的。二维数组不是一个选项,因为列包含不同的数据类型,并且 DataGridView 太慢而无法使用。
我认为简单地调暗 Microsoft.Office.Interop.Excel.Worksheet 对象就足够了,但程序一直失败,在调试模式下检查对象的元素后,我发现每个值都表示:
{“无法将类型为“Microsoft.Office.Interop.Excel.WorksheetClass”的 COM 对象转换为接口类型“Microsoft.Office.Interop.Excel._Worksheet”。此操作失败,因为 COM 组件上的 QueryInterface 调用由于以下错误,IID 为“{000208D8-0000-0000-C000-000000000046}”的接口失败:不支持此类接口(HRESULT 异常:0x80004002 (E_NOINTERFACE))。"}
如果有人能够告诉我如何在不打开 Excel 的情况下获取工作表对象,或者至少提供一个合理的替代方案,我将不胜感激。
【问题讨论】:
-
您的开发 PC 上是否安装了 Excel?如何在代码中实例化 Worksheet 对象?
-
是的。我有 Excel 2007。公共 Sheet1 作为 Microsoft.Office.Interop.Excel.Worksheet
-
这是一个声明,不是实例化!
-
对,对不起。在表单的加载子中:Sheet1 = New Microsoft.Office.Interop.Excel.Worksheet
-
我试图在下面的回答中解决这个问题。
标签: vb.net interop excel-interop