您的位置:首页 > 其它

读取Excel数据到GridView相关问题(待完善)

2007-10-12 10:57 267 查看
参考文献
http://www.knowsky.com/345281.html
(1)数据读取

Excel表格里的数据如下

A B C

1 a1 b1 c1

2 a2 b2 c2

3 a3 b3 c3

4 a4 b4 c4

5 a5 b5 c5

select * from [Sheet1$]

读取到的数据如下

a2 b2 c2

a3 b3 c3

a4 b4 c4

a5 b5 c5

select * from [Sheet1$A1:C5]

读取到的数据如下

a2 b2 c2

a3 b3 c3

a4 b4 c4

a5 b5 c5

select * from [Sheet1$A3:C5]

读取到的数据如下

a4 b4 c4

a5 b5 c5

问题一出来了:有效区域内第一行始终读不出来

原因:根据默认连接字符串中,数据提供程序会将有效区域内第一行作为列名(具体显示F1,F2,F3还是其他,有待研究,目前只知道输入汉字则显示汉字)

解决方法:修改连接字符串

默认连接字符串

"provider=microsoft.jet.oledb.4.0;data source=" + @"G:\测试Excel.xls" + ";extended properties='excel 8.0;'"

修改后

"provider=microsoft.jet.oledb.4.0;" + "data source=" + @"G:\测试Excel.xls" + ";extended properties='Excel 8.0;HDR=NO;'"

解释一下:

HDR=NO表示把有效区域内第一行作为数据

HDR=YES表示把有效区域内第一行作为列名

问题二:Excel表格里显示的数据读到GridView里就不一样了

原因:读取文件时,Excel会以第一行的数据类型为参考

解决方法:修改连接字符串

默认连接字符串

"provider=microsoft.jet.oledb.4.0;data source=" + @"G:\测试Excel.xls" + ";extended properties='excel 8.0;'"

修改后

"provider=microsoft.jet.oledb.4.0;" + "data source=" + @"G:\测试Excel.xls" + ";extended properties='Excel 8.0;IMEX=1;'"

解释一下:

IMEX=1来把混合型作为文本型读取

总结:

综合问题一和问题二

连接字符串写成如下方式

"provider=microsoft.jet.oledb.4.0;" + "data source=" + @"G:\测试Excel.xls" + ";extended properties='Excel 8.0;HDR=NO;IMEX=1'";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: