2011-03-01 6 views
1

Excel 파일에서 데이터베이스로 정보를 가져 오기 요구 사항이 있습니다. 저는 Ssis 패키지를 실행하는 웹 페이지를 가지고 있습니다.이 페이지는 Excel 파일을 집어 들고 데이터베이스에 데이터를로드합니다.
문제는 xls 또는 xlxs를 처리하는 Excel 파일의 여러 유형에서 현재 거짓말입니다.

SSIS 연결 관리자를 사용하면 xls 또는 xlxs 중 하나로 연결할 Excel 파일 형식을 지정할 수 있으므로 두 가지 유형 모두에 대해 하나의 연결 관리자를 사용할 수 없으며 사용자가 항상 변경할 수 있습니다 xlxs 파일을 xls로 만든 다음 처리하십시오. Excel 파일 유형 인 을 기반으로 동적으로 연결 관리자를 변경하는 방법이 있습니까? 아니면 다른 유형이 처리 될 때 두 개의 다른 SSIS 패키지가 있어야합니다.SSIS 가져 오기 Excel 파일 xls/xlsx

답변

2

SSIS 2008에서는 2007 Excel 파일 (.xlsx)에 대한 연결을 설정 한 다음 연결 관리자의 식을 사용하여 ExcelFilePath를 변수 값으로 설정할 수 있습니다. 이 변수의 값은 유형, 97-2003 (.xls) 또는 2007 (.xlsx) 일 수 있으며 시트 이름이 동일하면 Excel 소스가 작동합니다. 이 2005

SSIS에서 동일한 동작 인 경우

Excel Connection Manager Expression

는 잘 모르겠어요

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."); 
       } 

      } 

파일 지정 꽤 쉽다 xlsx와 xls 연결을위한 2 개의 다른 설정 파일들과 업로드 된 엑셀 파일 확장자에 기반한 적절한 설정 파일을 사용하십시오.