string str = "SELECT * FROM [Sheet1$]";
return this.cmd.ExecuteReader();
这种访问方式,provider内部机制回去自动推测判断每列的单元格数据储存类型的.
之所以部分行列的单元格指读取不出来,大部分是因为数据类型的问题.
特别是 同一列有数字,而部分数字储存格式不同,你打开EXCEL就可以看到有绿色的小三角在左上角.
这类读取出来就有可能是空
解决同一列中“字符串”和“数字”两种格式同时存在,读取时,不能正确显示“字符串”格式的问题:
方法一:修改代码
set xlsconn=CreateObject("ADODB.Connection") xlsconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(xlspath)&";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
主要是驱动的问题,需要添加hdr 和 imex,
其中,hdr取值yes,no ,表示第一行是否为字段名
imex 取值1,2,
其中1 正是解决此问题的关键
方法二:修改Excel
强制将数字和字符串共存列设置为文本格式即可
时间: 2024-10-09 17:17:29