问:在使用ASP的ADO导入EXCEL数据时,同一列数据中有文本及数字类型数据时,文本部份或数字部分的数据无法导入,但又没有报错,如何解决?直接读取EXCEL显示到ASP页面上,也是显示部份数据为空,如何解决?有没有直接打开EXCEL读取数据的方法?
这个是数据库驱动的原因造成的,你可以在数据库连接字符串中加上”IMEX=1″,如:strCon = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source = ” + Path + “;Extended Properties =’Excel 8.0;HDR=NO;IMEX=1′”; 说明:HDR=表示数据有无标题行(yes/no),IMEX=1通知驱动程序始终将“互混”数据列作为文本读取,在这里需要清楚的是,系统在判断该字段(列)到底是数值还是文本时,是通过该列的前8条记录是否有文本数据,有则该列作为文本读取,否则,即使后面的记录有文本,也还是按数值读取(导致文本为空)。 修改“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel”下的TypeGuessRows注册表值,可以将其改大些,如1000,这样在1000条记录前只要有文本,就不会出现文本为空的现象,具体情况要视你的数据而定。