我编写了一段代码,通过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
答案 0 :(得分:0)
将您的连接字符串更改为
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"""