代码之家  ›  专栏  ›  技术社区  ›  Nemo

将excel工作表导入到DataGridView

  •  2
  • Nemo  · 技术社区  · 8 年前

    我想用这个密码 Used Code 将Excel工作表导入到数据网格视图,但此异常已触发,我不知道主要问题是什么。

    Exception

    我正在尝试一些解决方案,如将活动解决方案平台从任何人更改为x86,但它不起作用

    excel文件版本是否是重要的excel 2010、excel 2013?

    更新:
    我在此安装了Microsoft Office Access数据库引擎 Site ,最后一个异常将消失,但将触发此新异常

    Exception#2

    这是使用的代码:

    public void importfromexcel()
        {
            string SheetPath = @"E:\students.xlsx";
            string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + SheetPath + ";Extended Properties=Excel 12.0;';";
            OleDbConnection con = new OleDbConnection(constr);
            OleDbDataAdapter sda = new OleDbDataAdapter("Select * From [" + SheetPath + "$]", con);
            System.Data.DataTable data = new System.Data.DataTable();
            sda.Fill(data);
            dataGridView1.DataSource = data;
        }
    

    这段代码有问题吗??
    提前谢谢。

    1 回复  |  直到 8 年前
        1
  •  1
  •   JohnG    8 年前

    请尝试下面的代码,并进行一些小的更改—它可以按预期工作。

    string WorkBookPath = @"D:\Test\Book1.xlsx";  //@"E:\students.xlsx";
    string SheetName = "Sheet1$"; // <--- this is the name of the WORKSHEET in the workBOOK
    string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + WorkBookPath + ";Extended Properties=Excel 12.0;";
    using (OleDbConnection con = new OleDbConnection(constr)) {
      OleDbDataAdapter sda = new OleDbDataAdapter("Select * From [" + SheetName + "]", con);
      DataTable data = new DataTable();
      sda.Fill(data);
      dataGridView1.DataSource = data;
    }
    
    推荐文章