C# 从.net中的MS 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;

我编写了一段代码,通过ado.net读取数据表中的excel数据。现在我看到了一个奇怪的行为,ms excel中的列数据类型被指定为general,但是如果该特定列的excel的第一行包含一些文本,ado.net无法读取该特定列中的数字,如果第一行包含一些数字信息,ado.net无法读取该特定列的文本数据。下面是我用来从excel读取数据的代码

    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=否-这应该会有所帮助