我目前正在开发一个 64 位 C# 应用程序,需要从 Excel 电子表格导入数据。我听说最好的方法是使用 ADO 数据连接。然而,我读到(并且经历过),为了完成这项工作,我必须编写一个 32 位应用程序,因为没有适用于 64 位应用程序的 OleDb odbc 驱动程序。
问题是我无法将应用程序编译为 32 位应用程序,否则程序的其他部分(不可重写)将会崩溃。
事实上,我无法在 64 位应用程序中从 Excel 导入数据,这似乎是一个相当荒谬的问题。我该如何解决这个问题?或者如果没有,有哪些解决方法可用?
最佳答案
两种可能的解决方案:
使用Open XML SDK反而。这是 Office 2007 特有的,但它直接处理文件,不需要通过任何数据库驱动程序。这是我选择的武器,因为它比自动化更快、更少不稳定,并且可以处理更“高级”的任务,例如格式化。
编译单独的 x86 二进制文件,并根据需要从 x64 应用程序启动该进程。导入器应用程序可以使用某种形式的 IPC 提供反馈,也可以简单地将文件转换为 CSV 之类的文件,您可以在 x64 应用程序中 native 读取该文件。 (我不太喜欢这种类型的拼凑,但你做了你必须做的事......)
我同意,我们仍然没有 x64 JET 或 ACE 驱动程序,这有点荒谬,但是 that seems to be the way it is目前。即使 MSDASQL 也不适合你;有一个 64 位库,但我了解到 Excel 组件仍然只能在 32 位模式下工作。
关于c# - 使用 ADO 3.5 将数据从 Excel 导入 64 位应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2089664/