使用ADO 3.5将数据从Excel导入64位应用程序

时间:2010-01-18 22:24:44

标签: c# excel ado.net 64-bit

我目前正在开发一个需要从Excel电子表格导入数据的64位C#应用程序。我听说最好的方法是使用ADO数据连接。但是,我已经阅读(并且经历过)为了使这项工作,我必须编写一个32位应用程序,因为没有用于64位应用程序的OleDb odbc驱动程序。

问题是我无法将我的应用程序编译成32位应用程序或程序的其他部分(不可重写)会崩溃。

我无法在64位应用程序中从Excel导入数据这一事实看起来是一个相当荒谬的问题。我该如何解决这个问题?或者如果没有,可以使用哪些解决方法?

3 个答案:

答案 0 :(得分:3)

两种可能的解决方案:

  1. 请改用Open XML SDK。这是Office 2007特定的,但它直接处理文件,而不必通过任何数据库驱动程序。这是我的首选武器,因为它比自动化更快,更不易碎,可以处理更为“高级”的任务,如格式化。

  2. 编译单独的x86二进制文件,并根据需要从x64应用程序启动该过程。导入器应用程序可以使用某种形式的IPC提供反馈,或者只是将文件转换为CSV,您可以在x64应用程序中本地读取。 (我不完全是这种类型的kludge的粉丝,但你做的就是你要做的......)

  3. 我同意,我们仍然没有x64 JET或ACE驱动程序,但现在只有that seems to be the way it is,这有点荒谬。即使MSDASQL也不适合你;有一个64位的库,但我读过Excel组件仍然只能在32位模式下工作。

答案 1 :(得分:0)

您是否考虑过使用VSTO(Microsoft Visual Studio Tools for Office,我认为它现在作为VS 2008的一部分包含在内,并且可以从早期版本获得,可以从Microsoft免费下载)?或者使用OLE自动化?

答案 2 :(得分:0)

SpreadsheetGear for .NET是一个与Excel兼容的.NET组件,它是用C#编写的安全托管代码,并为“任何CPU”编译,因此它适用于32位和64位.NET。这是.NET的一大优势 - 一个SpreadsheetGear.dll版本与32位.NET CLR和64位.NET CLR同样适用。

您可以查看在线示例here并下载免费试用here

免责声明:我拥有SpreadsheetGear LLC

相关问题