C# 将excel工作表导入DataGridView

C# 将excel工作表导入DataGridView,c#,excel,C#,Excel,我试图使用此代码将excel工作表导入data grideview,但引发了此异常,我不知道主要问题是什么 我正在尝试一些解决方案,如将活动解决方案平台从Anywhere更改为x86,但它不起作用 excel文件版本是否重要excel 2010、excel 2013 更新: 我从此安装了Microsoft Office Access数据库引擎,最后一个异常消失,但新异常被激发 这是使用的代码: public void importfromexcel() { strin

我试图使用此代码将excel工作表导入data grideview,但引发了此异常,我不知道主要问题是什么

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

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

更新:
我从此安装了Microsoft Office Access数据库引擎,最后一个异常消失,但新异常被激发

这是使用的代码:

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;
    }
此代码中是否存在任何问题??

提前感谢。

尝试下面的代码,并做一些小改动……它可以正常工作

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;
}
string WorkBookPath=@“D:\Test\Book1.xlsx”//@“E:\students.xlsx”;

字符串SheetName=“Sheet1$”;//最后一个错误看起来相当简单,要么您没有该文件的权限,要么该文件已打开。我猜如果你一直有问题,它可能仍然是开放的。您是否检查过任务管理器以查看是否有任何延迟访问进程仍在运行?@JohnG是的,我已检查过,没有任何延迟访问进程仍在运行!那Excel呢。。。看起来您正在打开一个Excel文件。当我重新启动visual studio时,此异常消失,但我当前的异常是:初始化字符串的格式不符合从索引107开始的规范。您应该仔细查看以下行…
oledbataadapter sda=new OleDbDataAdapter(“选择*From[”+SheetPath+“$]”,con)…看起来您正试图从文件名“E:\students.xlsx”中获取“工作表”?。。。工作表的名称是“E:\students.xlsx”?