【问题标题】:SSIS importing Excel files xls/xlsxSSIS 导入 Excel 文件 xls/xlsx
【发布时间】:2011-03-01 07:34:02
【问题描述】:

我需要将信息从 excel 文件导入数据库。 我有一个运行 ssis 包的网页,它会选择一个 excel 文件并将数据加载到数据库中。
现在的问题在于,不同类型的 excel 文件被处理为 xls 或 xlxs。

SSIS excel 连接管理器,让您指定哪种类型的 excel 文件,您将连接到 xlsxlxs,您不能使用一个连接两种类型的管理器,现在只允许用户始终将 xlxs 文件更改为 xls,然后对其进行处理,有没有办法根据 excel 文件的类型动态更改连接管理器, 或者当处理不同的类型时,我应该只调用两个不同的 SSIS 包。

【问题讨论】:

    标签: excel ssis


    【解决方案1】:

    在 SSIS 2008 中,您可以设置与 2007 Excel 文件 (.xlsx) 的连接,然后使用连接管理器上的表达式将 ExcelFilePath 设置为变量的值。此变量的值可以是 97-2003 (.xls) 或 2007 (.xlsx) 类型,只要工作表名称相同,Excel 源就可以工作。

    我不确定这是否与 SSIS 2005 中的行为相同。

    【讨论】:

      【解决方案2】:

      如果您已经从代码运行 ssis 包,我想这应该相对容易做到。过去一周左右,我一直在用代码编辑包,修改变量等非常容易。我知道你也可以访问连接并指定一个 dtsConfig 文件

                      using (var p = app.LoadFromSqlServer(config.PackageName, config.SqlServerName, config.UserName, config.Password, null))
                  {
      
                      // changing variables in code
                      Variables vars = p.Variables;
                      vars["FromDate"].Value= criteria.From;
                      vars["ToDate"].Value = criteria.To;
                      // using a configfile in code
                      p.ImportConfigurationFile(config.ConfigurationFile);
                      DTSExecResult result = p.Execute();
                      if (result != DTSExecResult.Success)
                      {
                          throw new ApplicationException("SSIS Package did not compelte successfully.");
                      }
      
                  }
      

      您可能有 2 个不同的配置文件,一个用于 xlsx,一个用于 xls 连接,并根据上传的 excel 文件扩展使用适当的配置文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-18
        • 2018-04-13
        • 1970-01-01
        • 2012-07-11
        • 2023-01-23
        • 1970-01-01
        • 2014-05-16
        • 1970-01-01
        相关资源
        最近更新 更多