【发布时间】:2018-07-20 11:59:19
【问题描述】:
我正在尝试使用此代码Used Code 将 excel 表导入数据 grideview,但此异常被触发,我不知道主要问题是什么。
我正在尝试一些解决方案,例如将活动解决方案平台从任何人更改为 x86,但它不起作用
excel文件版本重要吗 Excel 2010 , Excel 2013 ?
更新:
我从这个Site 安装了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;
}
这段代码有什么问题吗??
提前致谢。
【问题讨论】:
-
最后一个错误看起来相当简单,要么您没有文件的权限,要么文件已经打开。我猜如果您遇到问题,它可能仍然是开放的。您是否检查过任务管理器以查看是否有任何延迟的 Access 进程仍在运行?
-
@JohnG 是的,我已经检查过了,没有任何挥之不去的访问进程仍在运行!
-
Excel 怎么样...看起来您正在打开一个 Excel 文件。
-
此异常在我重新启动 Visual Studio 时消失,但我当前的异常是:初始化字符串的格式不符合从索引 107 开始的规范。
-
您应该仔细查看该行...
OleDbDataAdapter sda = new OleDbDataAdapter("Select * From [" + SheetPath + "$]", con);...看起来您正试图从文件名“E:\students.xlsx”中获取“工作表”?...工作表名称是“E:\students.xlsx”?