ListObject 컨트롤

업데이트: 2008년 7월

적용 대상

이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 버전에만 적용됩니다.

문서 수준 프로젝트

  • Excel 2007

  • Excel 2003

응용 프로그램 수준 프로젝트

  • Excel 2007

자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

ListObject 컨트롤은 이벤트를 노출하는 목록이며 데이터에 바인딩할 수 있습니다. 워크시트에 목록을 추가하면 Visual Studio Tools for Office에서 Microsoft Office Excel 개체 모델을 순회하지 않고도 직접 프로그래밍할 수 있는 ListObject 컨트롤이 작성됩니다.

컨트롤 만들기

디자인 타임 또는 런타임에 문서 수준 사용자 지정에서 Microsoft Office Excel 워크시트에 ListObject 컨트롤을 추가할 수 있습니다. Visual Studio 2008 SP1(서비스 팩 1)부터는 런타임에 응용 프로그램 수준 추가 기능에서도 ListObject 컨트롤을 추가할 수 있습니다. 자세한 내용은 방법: 워크시트에 ListObject 컨트롤 추가를 참조하십시오.

참고:

기본적으로 동적으로 만들어진 목록 개체는 워크시트를 닫을 때 워크시트에서 호스트 컨트롤로 유지되지 않습니다. 자세한 내용은 런타임에 Office 문서에 컨트롤 추가를 참조하십시오.

컨트롤에 데이터 바인딩

ListObject 컨트롤은 단순 데이터 바인딩과 복합 데이터 바인딩을 모두 지원합니다. ListObject 컨트롤은 디자인 타임에 DataSourceDataMember 속성을 사용하거나 런타임에 SetDataBinding 메서드를 사용하여 데이터 소스에 바인딩할 수 있습니다.

참고:

ListObjectDataTable과 같이 데이터가 변경되면 이벤트를 발생시키는 데이터 소스에 바인딩될 때 자동으로 업데이트됩니다. 데이터가 변경되어도 이벤트를 발생시키지 않는 데이터 소스에 ListObject를 바인딩할 경우 RefreshDataRow 또는 RefreshDataRows 메서드를 호출하여 ListObject를 업데이트해야 합니다.

반복 스키마 요소를 워크시트 셀에 매핑하여 ListObject를 워크시트 셀에 추가하는 경우 Visual Studio Tools for Office는 ListObject를 생성된 데이터 집합에 자동으로 매핑합니다. 이때 ListObject가 데이터에 자동으로 바인딩되지 않습니다. 디자인 타임이나 런타임에 문서 수준 프로젝트에서 데이터 집합에 ListObject를 바인딩하는 단계를 수행할 수 있습니다. SP1부터는 런타임에 응용 프로그램 수준 추가 기능에서도 데이터 집합에 ListObject를 프로그래밍 방식으로 바인딩할 수 있습니다.

데이터는 ListObject와 구분되어 있으므로 ListObject를 통해 직접 데이터를 추가하거나 제거하는 대신 바인딩된 데이터 집합을 사용해야 합니다. 바인딩된 데이터 집합의 데이터가 어떤 메커니즘을 통해 업데이트되면 ListObject 컨트롤이 변경 내용을 자동으로 반영합니다. 자세한 내용은 컨트롤에 데이터 바인딩을 참조하십시오.

ListObject를 데이터 소스에 바인딩하여 ListObject 컨트롤을 빠르게 채울 수 있습니다. 데이터 바인딩된 ListObject에서 데이터를 편집하는 경우 데이터 소스의 데이터도 자동으로 변경됩니다. ListObject를 채운 다음 사용자가 데이터 소스를 수정하지 않고 ListObject에서 데이터를 변경할 수 있도록 하려면 Disconnect 메서드를 사용하여 ListObject를 데이터 소스에서 분리합니다. 자세한 내용은 방법: ListObject 컨트롤을 데이터로 채우기를 참조하십시오.

참고:

겹치는 ListObject 컨트롤에 대해서는 데이터 바인딩이 지원되지 않습니다.

ListObject 컨트롤의 성능 향상

데이터 바인딩된 ListObject 컨트롤로 XML 파일을 읽어들이는 경우, 먼저 컨트롤을 바인딩한 다음 ReadXml을 호출하여 데이터 집합을 채우면 작업이 느려지기 쉽습니다. 성능을 높이려면 컨트롤을 바인딩하기 전에 ReadXml을 호출하십시오.

ListObject 컨트롤과 데이터 소스 간의 연결 끊기

ListObject 컨트롤을 데이터 소스에 바인딩하여 데이터로 해당 컨트롤을 채운 후 목록 개체의 데이터에 대한 수정이 데이터 소스에 영향을 주지 않도록 연결을 끊을 수 있습니다. 자세한 내용은 방법: ListObject 컨트롤을 데이터로 채우기를 참조하십시오.

형식 지정

Microsoft.Office.Interop.Excel.ListObject에 적용할 수 있는 형식은 Microsoft.Office.Tools.Excel.ListObject 컨트롤에도 적용할 수 있습니다. 여기에는 테두리, 글꼴, 숫자 형식 및 스타일이 포함됩니다. 최종 사용자는 데이터 바인딩된 ListObject에서 열을 다시 정렬할 수 있습니다. 디자인 타임에 ListObject를 문서에 추가하면 이러한 변경 내용을 문서와 함께 유지할 수 있습니다. 이후에 문서를 열면 목록 개체가 동일한 데이터 소스에 바인딩되지만 열 순서에는 사용자의 변경 내용이 반영됩니다.

런타임에 열 추가 및 제거

데이터 바인딩된 ListObject 컨트롤의 열은 런타임에 수동으로 추가하거나 제거할 수 없습니다. 최종 사용자가 열을 삭제하려 시도하면 삭제한 열이 즉시 복구되고, 최종 사용자가 추가한 열은 모두 제거됩니다. 따라서 데이터에 바인딩된 ListObject에 대해 이러한 작업을 수행할 수 없는 이유를 사용자에게 설명하는 코드를 작성하는 것이 중요합니다. Visual Studio Tools for Office에서는 데이터 바인딩에 관련된 ListObject의 여러 가지 이벤트를 제공합니다. 예를 들어, OriginalDataRestored 이벤트를 사용하면 사용자가 삭제하려 시도한 데이터를 삭제할 수 없고 이 데이터가 복구되었음을 알리는 경고 메시지를 표시할 수 있습니다.

런타임에 행 추가 및 제거

데이터 소스에서 새 행을 추가할 수 있도록 허용하고 있으며 데이터 소스가 읽기 전용이 아닌 경우 데이터 바인딩된 ListObject 컨트롤에서 행을 수동으로 추가하거나 제거할 수 있습니다. BeforeAddDataBoundRow 같은 이벤트에 대한 코드를 작성하여 데이터의 유효성을 검사하거나 ErrorAddDataBoundRow에 대한 코드를 작성하여 오류가 수정된 후 작업을 다시 시도하도록 만들 수 있습니다.

자세한 내용은 방법: ListObject 컨트롤에 새 행을 추가할 때 데이터 유효성 검사방법: ListObject 컨트롤에 새 행이 추가될 때 오류 처리를 참조하십시오.

Excel 2007에서 ListObject 컨트롤 이름 바꾸기

런타임에 Excel 2007의 디자인 탭을 사용하여 Excel 표의 이름을 바꿀 수 있지만 ListObject 컨트롤은 이러한 기능을 지원하지 않습니다. 사용자가 ListObject에 해당하는 Excel 표의 이름을 바꾸려고 하면 통합 문서를 저장할 때 Excel 표의 이름이 자동으로 원래 이름으로 복원됩니다.

참고:

Excel 목록은 Excel 2007에서 Excel 표라고 합니다.

이벤트

ListObject 컨트롤에 사용할 수 있는 이벤트는 다음과 같습니다.

참고 항목

작업

방법: 워크시트에 ListObject 컨트롤 추가

방법: ListObject 컨트롤 크기 조정

방법: ListObject 컨트롤에 새 행을 추가할 때 데이터 유효성 검사

방법: ListObject 컨트롤에 새 행이 추가될 때 오류 처리

방법: 데이터에 ListObject 열 매핑

방법: ListObject 컨트롤을 데이터로 채우기

Excel 추가 기능 동적 컨트롤 샘플

방법: 데이터베이스의 데이터로 워크시트 채우기

개념

ListObject 열 및 행 순서 지속성 이해

컨트롤에 데이터 바인딩

런타임에 응용 프로그램 수준 추가 기능의 Word 문서 및 Excel 통합 문서 확장

Excel 응용 프로그램 수준 추가 기능 개발

런타임에 Office 문서에 컨트롤 추가

호스트 항목 및 호스트 컨트롤의 프로그래밍에 대한 제한 사항

기타 리소스

Excel 호스트 컨트롤

Word 호스트 컨트롤

Office 문서의 컨트롤

변경 기록

날짜

변경 내용

이유

2008년 7월

응용 프로그램 수준 추가 기능에서 목록 개체 컨트롤을 사용하는 방법에 대한 정보가 추가되었습니다.

SP1 기능 변경