从Excel文件

时间:2015-12-07 15:38:07

标签: sql-server excel ssis

上下文

我正在尝试创建一个SSIS包,以便从EXCEL(Microsoft Excel工作表(.xlsx))文件导入SQL Server 2012.所有文件都有一个具有相同选项卡名称的选项卡。

  • 当我指定单个文件时,此过程有效。

  • 当我尝试使用For Each容器时,该过程失败。

在For Each File Enumerator中,我创建了一个变量[user@ExcelFileName]

错误

在excel连接管理器的表达式中,我尝试了以下ConnectionString值:

>   - @ [用户:: ExcelFileName]

- " Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + @ [User :: ExcelFileName] +&#34 ;;扩展属性= Excel 8.0"

- " Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" + @ [User :: Filename] +&#34 ;;扩展属性= \" Excel 12.0 \&#34 ;;"

  • " Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" + @ [User :: Filename] +&#34 ;;扩展属性= \" Excel 12.0; HDR = YES \&#34 ;;"

他们都失败了。

这是错误消息:

  

数据流任务错误[Excel源[1]]:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 AcquireConnection方法调用连接管理器" Excel连接管理器"失败,错误代码为0xC0202009。在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多信息。

     

数据流任务[SSIS.Pipeline]出错:组件" Excel源" (1)验证失败并返回错误代码0xC020801C。

     

数据流任务[SSIS.Pipeline]出错:一个或多个组件验证失败。

     

数据流任务错误:任务验证期间出现错误。

     

程序包错误[连接管理器" Excel连接管理器"]:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80040E73。   OLE DB记录可用。来源:" Microsoft OLE DB服务组件" Hresult:0x80040E73描述:"初始化字符串的格式不符合OLE DB规范。"。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您需要在32位环境中运行包,因此将项目的Run64BitRuntime属性设置为false。之后开始你的包裹。