通过OleDb方式读取Excel文件时常常出现读取某些字段为null值,其实是有值,原因是读取文件时,Excel通常会以前10行的数据类型为参考,如果后边的与其不一致,则会出现些问题。 可以通过修改Excel文件的连接串,强制读取的数据为字符串类型。
string xlsConnFormat = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='{0}';Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";
// 1、HDR表示要把第一行作为数据还是作为列名,作为数据用HDR=no,作为列名用HDR=yes;
// 2、通过IMEX=1来把混合型作为文本型读取,避免null值。
注意:把一个excel文件看做一个数据库,一个sheet看做一张表。语法 “SELECT * FROM [sheet1]”,表单要使用”[]”和””
默认Excel的表,列名是”F1 ~ F99″。
如果提示 “找不到可安装的ISAM。”错误,主要还是Connection字符串的问题,请注意Data Source之间是否空格,Extended Properties是否书写正确。
Important note: if you are selecting data for a specific date you can use the following: “SELECT * FROM [Sheet1$] where datecol=#3/15/2009#” don’t try to use the single quotes ” ‘ “.
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168140.html原文链接:https://javaforall.cn