방법: Excel 파일 및 테이블 루핑

업데이트: 2006년 7월 17일

이 항목의 절차에서는 적절한 열거자와 함께 Foreach 루프 컨테이너를 사용하여 폴더 내의 Excel 통합 문서 또는 Excel 통합 문서 내의 테이블을 루핑하는 방법에 대해 설명합니다.

Foreach File 열거자를 사용하여 Excel 파일을 루핑하려면

  1. 루프 반복마다 현재 Excel 경로와 파일 이름을 받을 문자열 변수를 만듭니다. 이 절차의 뒷부분에 나오는 샘플 식에서는 변수 이름 ExcelFile을 사용합니다.

    [!참고] 유효성 검사 문제를 피하려면 올바른 Excel 경로와 파일 이름을 변수의 초기 값으로 할당합니다.

  2. Excel 연결 문자열의 확장 속성 인수에 대한 값을 보유하는 다른 문자열 변수를 만듭니다. 이 인수는 Excel 버전을 지정하고 첫 번째 행에 열 이름을 포함할지 여부와 가져오기 모드 사용 여부를 결정하는 일련의 값을 포함합니다. 이 절차의 뒷부분에 나오는 예제 식에서는 초기 값 "Excel 8.0;HDR=Yes``"와 함께 변수 이름 ExtProperties를 사용합니다.

  3. 제어 흐름 탭에 Foreach 루프 컨테이너를 추가합니다. Foreach 루프 컨테이너 구성 방법은 방법: Foreach 루프 컨테이너 구성을 참조하십시오.

  4. Foreach 루프 편집기컬렉션 페이지에서 Foreach File 열거자를 선택하고 Excel 통합 문서가 있는 폴더를 지정한 다음 파일 필터(일반적으로 *.xls)를 지정합니다.

  5. 변수 매핑 페이지에서 루프 반복마다 현재 Excel 경로 및 파일 이름을 받는 사용자 정의 문자열 변수에 인덱스 0을 매핑합니다. 이 절차의 뒷부분에 나오는 샘플 식에서는 변수 이름 ExcelFile을 사용합니다.

  6. Foreach 루프 편집기를 닫습니다.

  7. 방법: 패키지에 연결 관리자 추가에서 설명한 대로 Excel 연결 관리자를 패키지에 추가합니다. 연결에 기존 Excel 통합 문서 파일을 선택하면 유효성 검사 오류를 방지할 수 있습니다.

    ms345182.note(ko-kr,SQL.90).gif중요:
    이 Excel 연결 관리자 관리자를 사용하는 작업 및 데이터 흐름 구성 요소를 구성할 때 유효성 검사 오류가 발생하지 않도록 하려면 Excel 연결 관리자 편집기에서 기존 Excel 통합 문서를 선택합니다. 다음 단계에서 설명하는 대로 ConnectionString 속성에 대한 식을 구성하고 나면 연결 관리자는 런타임에 이 통합 문서를 사용하지 않습니다. 패키지를 만들고 구성한 다음에는 속성 창에서 ConnectionString 속성 값을 지울 수 있습니다. 그러나 이 값을 지우면 Foreach 루프가 실행될 때까지는 Excel 연결 관리자의 연결 문자열 속성이 유효하지 않게 됩니다. 따라서 연결 관리자가 사용된 작업이나 패키지에서 DelayValidation 속성을 True로 설정해야 유효성 검사 오류를 방지할 수 있습니다.
  8. 새 Excel 연결 관리자를 선택하고 속성 창에서 Expressions 속성을 클릭한 다음 줄임표를 클릭합니다.

  9. 속성 식 편집기에서 ConnectionString 속성을 선택하고 줄임표를 클릭합니다.

  10. 식 작성기에서 다음 식을 입력합니다.

    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +  @[User::ExcelFile] + ";Extended Properties=\"" + @[User::ExtProperties] + "\""
    

    확장 속성 인수의 값을 묶는 내부 따옴표를 닫는 데 이스케이프 문자 "\"가 사용되었다는 것에 유의하십시오.

  11. Excel 연결 관리자를 사용하는 Foreach 루프 컨테이너 내에 작업을 만들어 지정된 파일 위치 및 패턴과 일치하는 각 Excel 통합 문서에 같은 작업을 수행합니다.

Foreach ADO.NET 스키마 행 집합 열거자를 사용하여 Excel 테이블을 루핑하려면

  1. Microsoft Jet OLE DB 공급자를 사용하는 ADO.NET 연결 관리자를 만들어 Excel 통합 문서에 연결합니다. 연결 관리자 대화 상자의 모든 페이지에서 Extended Properties 속성의 값으로 Excel 8.0을 입력합니다. 자세한 내용은 방법: 패키지에 연결 관리자 추가를 참조하십시오.

  2. 루프 반복마다 현재 테이블의 이름을 받을 문자열 변수를 만듭니다.

  3. 제어 흐름 탭에 Foreach 루프 컨테이너를 추가합니다. Foreach 루프 컨테이너 구성 방법은 방법: Foreach 루프 컨테이너 구성을 참조하십시오.

  4. Foreach 루프 편집기컬렉션 페이지에서 Foreach ADO.NET 스키마 행 집합 열거자를 선택합니다.

  5. 연결 값으로 앞에서 만든 ADO.NET 연결 관리자를 선택합니다.

  6. 스키마 값으로 테이블을 선택합니다.

    [!참고] Excel 통합 문서의 테이블 목록에는 워크시트($ 접미사를 가짐)와 명명된 범위가 모두 포함됩니다. 워크시트 또는 명명된 범위 목록만 필터링해야 하는 경우 스크립트 작업에 이를 위한 사용자 지정 코드를 작성해야 합니다. 자세한 내용은 Working with Excel Files with the Script Task을 참조하십시오.

  7. 변수 매핑 페이지에서 현재 테이블 이름을 포함하도록 앞에서 만든 문자열 변수에 인덱스 2를 매핑합니다.

  8. Foreach 루프 편집기를 닫습니다.

  9. Excel 연결 관리자를 사용하는 Foreach 루프 컨테이너 내에 작업을 만들어 지정된 통합 문서의 각 Excel 테이블에 같은 작업을 수행합니다. 스크립트 작업을 사용하여 열거된 테이블 이름을 검사하거나 각 테이블을 작업할 경우에는 스크립트 작업의 ReadOnlyVariables 속성에 문자열 변수를 추가해야 합니다.

참고 항목

작업

방법: Foreach 루프 컨테이너 구성
방법: 속성 식 만들기

개념

Excel 연결 관리자
Excel 원본
Excel 대상

관련 자료

Working with Excel Files with the Script Task

도움말 및 정보

SQL Server 2005 지원 받기