SSIS Preview Excel数据为NULL

简介:
最近在做Excel 的解析,因为Excel都不标准,所以解析的时候出现了好多问题。其中一个问题是Excel数据有值,但是Preview 的数据都为NULL。
原因是我的Excel数据出现在第9列,而Excel获得数据类型 默认会扫描前 8 。这可通过向连接字符串添加可选的  MaxScanRows= 设置,或在 DSN 配置对话框中更改 要扫描的行数设置来完成。但是,由于 ODBC 驱动程序中存在一个错误,所以目前指定“要扫描的行数”(MaxScanRows) 设置不起作用。换句话说,Excel ODBC 驱动程序(MDAC 2.1 和更高版本)始终扫描指定数据源中的前 8 行,以确定各列的数据类型。( http://support.microsoft.com/kb/257819/cn
 
这个问题可以通过修改注册表解决:
 
32版本:
将TypeGuessRows的值从8修改为1
Excel 97
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Excel
Excel 2000 以及之后版本
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
64位版本:
修改:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel
将TypeGuessRows的值从 8 修改为 0
 
注意:
1.       TypeGuessRows是一个全局设置选项,会对所有Excel生效,不单单影响SSIS,所以要测试修改的影响。
2.       修改TypeGuessRows会使Excel扫描所有行来决定数据类型,如果Excel数据量大的话可能会影响性能。
 
更多信息参考:
PRB: Excel Values Returned as NULL Using DAO OpenRecordset: http://support.microsoft.com/kb/194124
BUG: Excel ODBC 驱动程序将忽略 FirstRowHasNames 或页眉设置: http://support.microsoft.com/kb/288343/cn

本文转自 lzf328 51CTO博客,原文链接:
http://blog.51cto.com/lzf328/1058067
相关文章
|
18天前
|
SQL 缓存 easyexcel
面试官问10W 行级别数据的 Excel 导入如何10秒处理
面试官问10W 行级别数据的 Excel 导入如何10秒处理
47 0
|
29天前
|
安全 Java 数据库连接
jdbc解析excel文件,批量插入数据至库中
jdbc解析excel文件,批量插入数据至库中
20 0
|
1月前
|
Java API Apache
使用AOP+反射实现Excel数据的读取
使用AOP+反射实现Excel数据的读取
excel根据数据得出公式
excel根据数据得出公式
|
2月前
|
数据采集 数据可视化 数据处理
【办公自动化】在Excel中按条件筛选数据并存入新的表2.0
【办公自动化】在Excel中按条件筛选数据并存入新的表2.0
45 1
|
1月前
|
SQL 数据可视化 数据处理
使用SQL和Python处理Excel文件数据
使用SQL和Python处理Excel文件数据
52 0
|
21天前
|
Java 数据库连接 mybatis
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
16 0
|
29天前
|
安全 Java 数据库连接
jdbc实现批量给多个表中更新数据(解析Excel表数据插入到数据库中)
jdbc实现批量给多个表中更新数据(解析Excel表数据插入到数据库中)
153 0
|
1月前
|
存储 数据处理 Python
使用Python批量合并Excel文件的所有Sheet数据
使用Python批量合并Excel文件的所有Sheet数据
28 0
|
1月前
|
存储 数据处理 Python
使用openpyxl库从Excel文件中提取指定的数据并生成新的文件
使用openpyxl库从Excel文件中提取指定的数据并生成新的文件
28 0