You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何强制SSIS Excel数据源将列读取为文本类型?

解决SSIS Excel数据源类型检测导致文本值读为NULL的问题

核心解决方案:强制Excel驱动按文本读取混合类型列

步骤1:修改Excel连接管理器的连接字符串

在SSIS的连接管理器面板中,找到你的Excel连接:

  • 右键点击该连接,选择「属性」
  • 在「ConnectionString」属性中,添加IMEX=1参数,最终格式类似:
    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\你的文件路径.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1;"
    
    注:HDR=YES表示Excel第一行是表头,若没有表头则改为HDR=NO

步骤2:调整Excel数据源高级编辑器的列类型

打开数据流任务中的Excel数据源,进行如下操作:

  • 点击组件右上角的「高级编辑器」按钮
  • 切换到「输入和输出属性」选项卡
  • 依次展开「Excel源输出」→「外部列」,找到目标列:
    • 修改该列的「数据类型」为Unicode string [DT_WSTR],长度设置为1000(与SQL表的nvarchar(1000)匹配)
  • 再展开「Excel源输出」→「输出列」,对对应列执行同样的修改:
    • 将「数据类型」改为Unicode string [DT_WSTR],长度设为1000
  • 点击「确定」保存设置

可选:调整Excel驱动的全局类型扫描行数

如果上述操作后仍有问题,可修改注册表调整驱动默认的类型判断行数:

  • 32位系统注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
  • 64位系统注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel
  • 修改TypeGuessRows的值为0(表示扫描全列判断类型)
  • 注:此为全局设置,会影响所有使用该Excel驱动的程序,操作前请备份注册表

内容的提问来源于stack exchange,提问作者variable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:14:51