C# 从.net中的MS Excel读取数据
我编写了一段代码,通过ado.net读取数据表中的excel数据。现在我看到了一个奇怪的行为,ms excel中的列数据类型被指定为general,但是如果该特定列的excel的第一行包含一些文本,ado.net无法读取该特定列中的数字,如果第一行包含一些数字信息,ado.net无法读取该特定列的文本数据。下面是我用来从excel读取数据的代码C# 从.net中的MS Excel读取数据,c#,excel,ado.net,C#,Excel,Ado.net,我编写了一段代码,通过ado.net读取数据表中的excel数据。现在我看到了一个奇怪的行为,ms excel中的列数据类型被指定为general,但是如果该特定列的excel的第一行包含一些文本,ado.net无法读取该特定列中的数字,如果第一行包含一些数字信息,ado.net无法读取该特定列的文本数据。下面是我用来从excel读取数据的代码 string excelConString = @"Provider=Microsoft.Jet.OLEDB.4.0;
string excelConString = @"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=D:\A.xls;
Extended Properties=""Excel 8.0;HDR=YES;""";
var oleDbConnection = new OleDbConnection(excelConString);
var cmd = oleDbConnection.CreateCommand();
cmd.CommandText = "select * from [WorkSheet$] where ID>=1500";
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
任何帮助都将不胜感激
问候
Ahsan Iqbal将您的连接字符串更改为
string excelConString = @"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=D:\A.xls;
Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text"""
您是否尝试将MAXSCANROWS=0添加到连接字符串中的扩展属性中?使HDR=否-这应该会有所帮助