C# 查询Excel 不显示数据

来源:百度知道 编辑:UC知道 时间:2024/06/12 03:23:13
oleDbConnExcel = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties=Excel 5.0;Data Source=" + filename + "");
oleDbConnExcel.Open();
ds = new DataSet();
dar = new OleDbDataAdapter(strGetDataFromExcel, oleDbConnExcel);
dar.Fill(ds);
我查询了一个Excel文件,其他的sheet 都能查出来, 但是其中有一个 sheet 文件 中的数字不能显示,只显示其他的东西。。。
请高手帮忙。。。。
很感谢大家 。。。、
但是 到现在还没有解决 这个问题。。。
因为 我出现的问题的 其中有部分数据 读不出来,应该是格式的问题。。。那这个格式 怎么控制啊??
我用格式刷 刷了一下后 就可以了。。。
但是 我不能 保证客户给我的 Excel 格式都能导入啊???大家还有什么好办法没有??

OleDbConnection con = new OleDbConnection("Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";User ID=Admin;Password=;Extended properties=Excel 8.0;HDR=YES;IMEX=1;");
con.Open();
ds = new DataSet();
OleDbCommand cmd = new OleDbCommand ("SQL", con);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(ds);

连接参数:
Excel 8.0 针对EXCEL 2000 或更高版本;Excel 5.0 FOR EXCEL 97

HDR 表示第一行是否为字段名。Yes为首行字段,No为无首行

IMEX 表示对同一列中有混合数据类型的列,是统一按字符型处理,还是将个别不同类型的值读为DBNULL。1为混合,2为不混合

Extended properties=Excel 5.0

改为

Extended properties=Excel 8.0 试试

我以前碰到过这个问题,我是这样解决的,如果是个别数值读不出来,我就把哪些数值列改成文本,然后把读不出来的那些单元格双击一下,双击后的单元格都在左上角有个小的绿三角,这样就肯定能读出来了,如果是大量的,这个方法就不好用了,我试了下,2000的excel就不会有问题,你只要把你的Excel转换成2000就行了

跟Excel的数据类型有关