循环遍历XLSM文件SSIS 2012

时间:2016-04-25 08:36:29

标签: excel ssis macros xlsm

我有一堆启用宏的Excel文件。我想用SQL查询遍历每一个 - select * from [Sheet1$A10:AZ100]。当我选择一个文件时,我的Excel连接管理器工作,但是当我添加For Each循环任务并将我的变量分配给它时,存在一个大问题。 我的步骤是:

  • 创建新连接:Excel连接管理器 我选择文件夹中的第一个XLSM文件,然后点击OK。

  • 拖放每个循环容器并双击。 在集合中:我选择For Each File Enumerator,在Folder中指定文件夹路径。在文件中:* .xlsm最后一个选项是:完全合格的 在变量映射中:我创建了一个名为' FileFound'

  • 的新变量
  • 在For Each Container中拖放数据流任务,然后双击。

  • 拖动源助手:选择上面创建的Excel连接管理器

  • 双击Excel源和数据访问模式:我选择SQL命令。我的查询是select * from [Sheet1$A10:AZ100]。对于所有XLSM文件,此查询都相同。

  • 点击列,我的数据显示全部正常

现在问题就出现了 -

右键单击“Excel连接管理器”,然后单击“属性”。

  • 我先复制我的连接字符串。我的连接字符串是:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\Excel data\ABCDE.xlsm;Extended Properties="Excel 12.0 MACRO;HDR=YES";

  • 我单击“表达式”并选择“属性中的连接字符串”。接下来我编辑我的表达式: "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::FileFound] + " ;Extended Properties=\"Excel 12.0 MACRO;HDR=YES\";" 这评估正确。

  • 然后,我将Excel连接管理器的延迟验证设置为TRUE

  • 我将每个容器的延迟验证设置为TRUE

我得到的错误是:

Error Message

如何解决此错误?我已经尝试了很多并阅读了所有内容,但无法通过这一切。

1 个答案:

答案 0 :(得分:1)

我修好了!!

我必须右键单击“Excel连接管理器”的属性。而不是在扩展属性中选择ConnectionString,我必须选择Excel File Path