【发布时间】:2017-05-08 11:22:57
【问题描述】:
我正在尝试从我已经创建的 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);
}
}
}
}
【问题讨论】:
-
第一个文档的工作表名称是什么?
-
无论如何,如果您的文档是使用非英语语言的 MS Excel 创建的,那么您必须使用工作表的本地化名称或重命名它们。
-
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Inputdata.xls... ? 试试@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= D:\Inputdata.xls...
-
请把你的连接字符串和这个connectionstrings.com/excel比较一下
-
Provider=Microsoft.ACE.OLEDB.12.0;数据源=D:\\Inputdata.xls;扩展属性="Excel 12.0 Xml;HDR=YES";
标签: c#