Reading from Excel: Microsoft.Jet.OLEDB.4.0 error on 64 bit systems

前端 未结 4 1621
醉酒成梦
醉酒成梦 2021-02-09 17:11

I am reading the contents of an excel sheet in my application using:

 OleDbConnection con = new OleDbConnection(\"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"         


        
相关标签:
4条回答
  • 2021-02-09 17:26

    Microsoft.Jet.OLEDB doesn't have 64bit version, only 32bit. Compile your application as 32bit (Platform target: x86 in build option).

    0 讨论(0)
  • 2021-02-09 17:42

    I don't believe it works... see this related question: OleDB not supported in 64bit mode?

    The problem seems to be that the COM/Interop is not designed for 64 bit environments, and so it can't be registered in 64 bit mode.

    You can force your .NET app to run in 32 bit mode on the 64 bit machine, which will allow you to access the OleDB functionality.

    0 讨论(0)
  • 2021-02-09 17:43

    Forget it, use these dll from codeplex that solve this problem. http://exceldatareader.codeplex.com/

    0 讨论(0)
  • 2021-02-09 17:47

    Microsoft released a driver distribution with a 64-bit driver that works for Access and Excel. You can download both the 64-bit and 32-bit versions from the MS downloads site. The download page also has a brief outline of what you would need to change in your connection string to reference the ACE driver.

    In a nutshell, you install the 64-bit driver distribution and then change your connection string to something along the lines of:

    string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=""Excel 8.0;IMEX=1""";
    
    0 讨论(0)
提交回复
热议问题