2011-03-01 174 views
1

我有一个excel文件导入信息到数据库的要求。 我有一个运行的SSIS包一个网页,拾取一个Excel文件,并加载数据到数据库中。
现在的问题在于,在不同类型的excel文件中进行xls或xlxs处理。

SSIS excel连接管理器,让您指定哪种类型的excel文件,您将连接到xlsxlxs,您无法对两种类型都使用一个连接管理器,现在只允许用户始终更改一个xlxs文件,XLS,然后对其进行处理,有没有办法来动态改变连接管理器,基于Excel文件, 的类型,或者我应该只是有两个不同的SSIS包调用,在处理不同的类型。SSIS导入Excel文件XLS/XLSX

回答

2

在SSIS 2008,您可以设置连接到2007年Excel文件格式(.xlsx),然后使用表达式的连接管理器来设置ExcelFilePath是一个变量的值。只要工作表名称相同,此变量的值可以是97-2003(.xls)或2007(.xlsx)类型的任何一种,并且Excel Source将起作用。

Excel Connection Manager Expression

我不知道如果这是在2005年SSIS

相同的行为
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文件extentsion的相应配置文件。