我有一个具有一行双精度值的Excel文件。它可以正确验证前8行,但是如果第9行或更高行中有错误数据,则它将数据类型视为dbnull而不是double。
例如,如果我的专栏看起来像这样(3行):
1234.22
1234.55
5555.xyz
这会将第3行视为双精度,并且第3行具有字母数字字符
但是,如果我这样做(超过9行):
1234
12345
12346
4357676
3456787
3456567
234234
978978
76867.ddd
123942
然后它将看到倒数第二行为dbNull,单元格值为“”。但是它将看到最后一行再次以正确的单元格值加倍。
这是我的连接字符串,所以我正在使用Imex = 1
string connString = connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";Extended Properties='Excel 12.0;IMEX=1;'";
进一步调查是导致问题的原因 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Excel]找到的注册表REG_DWORD“ TypeGuessRows”。注册表中默认为8。
显然,这仅读取前8行。我需要能够扫描所有行。
我无法在代码中设置它吗?我无法在工作中修改注册表