导入Excel会出现错误" System.InvalidOperationException:Microsoft.Jet.OLEDB.4.0'提供者未注册"

时间:2015-11-21 09:33:51

标签: c# .net excel oledb

我有一个旧项目,运行正常。现在我在尝试从Excel导入时收到错误:

enter image description here

  

System.Invalidoperationexception' microsoft.jet.oledb.4.0'提供者未注册

我可以登录。我尝试将项目平台更改为x86 / x64 /任何CPU,但没有用。 我也改变了:

  

Provider = Microsoft.Jet.OLEDB.4.0;数据源

  

Provider = Microsoft.Jet.OLEDB.12.0;数据源

但没用。这是我导入Excel的代码:

 private void button1_Click_1(object sender, EventArgs e)
    {
      //  string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\BILL REGISTER 97.xls;Extended Properties=\"Excel 8.0;HDR=Yes;\";";
        //string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtfilepath.Text + ";Extended Properties=\"Excel 8.0;HDR=Yes;\";";
        string connStr = "Provider=Microsoft.Jet.OLEDB.12.0;Data Source=" + txtfilepath.Text + ";Extended Properties=\"Excel 8.0;HDR=Yes;\";";


        OleDbConnection con = new OleDbConnection(connStr);
       // string strCmd = "select * from [sheet1$A8:P10]";
       // string strCmd = "select * from [sheet1$A8:IV65536]";
        string strCmd = "select * from [sheet1$A6:IV65536]";
        OleDbCommand cmd = new OleDbCommand(strCmd, con);
        try
        {
            con.Open();
            ds.Clear();
            da.SelectCommand = cmd;
            da.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
        finally
        {
            con.Close();
        }
    }

我已经安装了Office2010。

1 个答案:

答案 0 :(得分:2)

尝试使用

Provider=Microsoft.ACE.OLEDB.12.0;Data Source

而不是

Provider=Microsoft.Jet.OLEDB.12.0;Data Source