2011-03-01 172 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的相應配置文件。