我正在尝试从已经创建的Excel文件中读取数据。但是,在运行代码时,总是在同一路径中创建具有相同名称的新损坏文件。并得到错误消息,“ Microsoft Jet数据库引擎找不到对象'Sheet1 $'。请确保对象存在,并且正确拼写了其名称和路径名。”
这是我的代码
public void readdata()
{
//var fileName = string.Format("{0}\\C:\\Indputdata.xls", Directory.GetCurrentDirectory());
//var con = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Inputdata.xls;Extended Properties='Excel 8.0;HDR=Yes;'";
using (OleDbConnection connection = new OleDbConnection(con))
{
connection.Open();
OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection);
using (OleDbDataReader dr = command.ExecuteReader())
{
while (dr.Read())
{
var row1Col0 = dr[0];
Console.WriteLine(row1Col0);
}
}
}
}
对于Excel 2007和2010,您需要使用该ACE OLEDB
提供Jet OLEDB
程序。该提供程序已被弃用,不支持Office版本2007或更高版本的文件。
尝试这个 Extended Properties=""Excel 8.0;HDR=Yes"";"
Data Source=D:\Inputdata.xls;
string con = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Inputdata.xls;Extended Properties=""Excel 8.0;HDR=Yes"";"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句