다음을 통해 공유


연습: Excel 작업창의 컨트롤에 데이터 바인딩

이 연습에서는 Microsoft Office Excel의 작업 창에 있는 컨트롤에 대한 데이터 바인딩을 보여 줍니다. 컨트롤은 SQL Server 데이터베이스의 테이블 간 마스터/세부 관계를 보여 줍니다.

적용 대상: 이 항목의 정보는 Excel의 문서 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 애플리케이션 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하세요.

이 연습에서는 다음 작업을 수행합니다.

  • 워크시트에 컨트롤 추가

  • 작업 창 컨트롤 만들기

  • 작업 창 컨트롤에 데이터 바인딩된 Windows Forms 컨트롤 추가

  • 애플리케이션이 열릴 때 작업 창 표시

참고 항목

일부 Visual Studio 사용자 인터페이스 요소의 경우 다음 지침에 설명된 것과 다른 이름 또는 위치가 시스템에 표시될 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio IDE 개인 설정을 참조하세요.

필수 조건

이 연습을 완료하려면 다음과 같은 구성 요소가 필요합니다.

  • Microsoft Office 개발자 도구를 포함하는 Visual Studio 버전입니다. 자세한 내용은 Office 솔루션을 개발하기 위한 컴퓨터 구성을 참조하세요.

  • Excel 2013 또는 Excel 2010

  • Northwind SQL Server 샘플 데이터베이스가 있는 서버에 액세스합니다.

  • SQL Server 데이터베이스에서 읽고 쓸 수 있는 권한입니다.

프로젝트 만들기

첫 번째 단계에서 Excel 통합 문서 프로젝트를 만듭니다.

새 프로젝트를 만들려면

  1. My Excel Actions Pane이라는 이름으로 Excel 통합 문서 프로젝트를 만듭니다. 마법사에서 새 문서 만들기를 선택합니다. 자세한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하세요.

    Visual Studio의 디자이너에 새 Excel 통합 문서가 열리고 My Excel Actions Pane 프로젝트가 솔루션 탐색기에 추가됩니다.

프로젝트에 새 데이터 원본을 추가합니다.

프로젝트에 새 데이터 원본을 추가하려면

  1. 데이터 소스 창이 표시되지 않으면 메뉴 모음에서 보기>다른 창>데이터 소스를 차례로 선택하여 이를 표시합니다.

  2. 새 데이터 소스 추가 를 선택하여 데이터 소스 구성 마법사를 시작합니다.

  3. 데이터베이스를 선택하고 다음을 클릭합니다.

  4. Northwind 샘플 SQL Server 데이터베이스에 대한 데이터 연결을 선택하거나 새 연결 단추를 사용하여 새 연결을 추가합니다.

  5. 다음을 클릭합니다.

  6. 선택한 경우 연결을 저장하는 옵션을 선택 취소하고 다음을 클릭합니다.

  7. 데이터베이스 개체 창에서 테이블 노드를 확장합니다.

  8. Suppliers 테이블 옆에 있는 확인란을 선택합니다.

  9. Products 테이블을 확장하고 ProductName, SupplierID, QuantityPerUnit, UnitPrice를 선택합니다.

  10. Finish를 클릭합니다.

    마법사는 Suppliers 테이블 및 Products 테이블을 데이터 원본 창에 추가합니다. 또한 솔루션 탐색기에 표시되는 형식화된 데이터 세트를 프로젝트에 추가합니다.

워크시트에 컨트롤 추가

다음으로 첫 번째 워크시트에 NamedRange 컨트롤과 ListObject 컨트롤을 추가합니다.

NamedRange 컨트롤 및 ListObject 컨트롤을 추가하려면

  1. Visual Studio 디자이너에서 My Excel Actions Pane.xlsx 통합 문서가 열려 있고 Sheet1이 표시되었는지 확인합니다.

  2. 데이터 소스 창에서 Suppliers 테이블을 확장합니다.

  3. 회사 이름 노드에서 드롭다운 화살표를 클릭한 다음, NamedRange를 클릭합니다.

  4. 데이터 원본 창에서 Sheet1A2 셀로 회사 이름을 끕니다.

    CompanyNameNamedRange라는 NamedRange 컨트롤이 만들어지고 셀 A2에 <CompanyName>이 나타납니다. 동시에 suppliersBindingSource라는 BindingSource, 테이블 어댑터, DataSet가 프로젝트에 추가됩니다. 컨트롤은 BindingSource에 바인딩되고 이는 다시 DataSet 인스턴스에 바인딩됩니다.

  5. 데이터 원본 창에서 Suppliers 테이블 아래에 있는 열을 지나 아래로 스크롤합니다. Suppliers 테이블의 자식으로써 목록의 맨 아래에는 Products 테이블이 있습니다. Suppliers 테이블과 동일한 수준이 아닌 Products 테이블을 선택한 다음, 나타나는 드롭다운 화살표를 클릭합니다.

  6. 드롭다운 목록에서 ListObject를 클릭한 다음, Products 테이블을 Sheet1의 셀 A6으로 끕니다.

    ProductNameListObject라는 이름의 ListObject가 셀 A6에 만들어집니다. 동시에 productsBindingSource라는 BindingSource, 테이블 어댑터가 프로젝트에 추가됩니다. 컨트롤은 BindingSource에 바인딩되고 이는 다시 DataSet 인스턴스에 바인딩됩니다.

  7. C#의 경우에만 구성 요소 트레이에서 suppliersBindingSource를 선택하고 속성 창에서 Modifiers 속성을 Internal로 변경합니다.

작업 창에 컨트롤 추가

다음으로 콤보 상자가 있는 작업 창 컨트롤이 필요합니다.

작업창 컨트롤을 추가하려면

  1. 솔루션 탐색기에서 My Excel Actions Pane 프로젝트를 선택합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

  3. 새 항목 추가 대화 상자에서 작업 창 컨트롤을 선택하고 이름을 ActionsControl로 지정한 다음 추가를 클릭합니다.

작업창 컨트롤에 데이터 바인딩된 Windows Forms 컨트롤을 추가하려면

  1. 도구 상자공용 컨트롤 탭에서 ComboBox 컨트롤을 작업 창 컨트롤로 끌어 놓습니다.

  2. Size 속성을 171, 21로 변경합니다.

  3. 콤보 상자에 맞게 사용자 정의 컨트롤의 크기를 조정합니다.

작업 창의 컨트롤을 데이터에 바인딩

이 섹션에서는 워크시트의 NamedRange 컨트롤과 동일한 데이터 원본으로 ComboBox의 데이터 원본을 설정합니다.

컨트롤의 데이터 바인딩 속성을 설정하려면

  1. 작업 창 컨트롤을 마우스 오른쪽 단추로 클릭한 다음, 코드 보기를 클릭합니다.

  2. 작업 창 컨트롤의 Load 이벤트에 다음 코드를 추가합니다.

    private void ActionsControl_Load(object sender, EventArgs e)
    {
        this.comboBox1.DataSource = Globals.Sheet1.suppliersBindingSource;
        this.comboBox1.DisplayMember = "CompanyName";
    }
    
  3. C#에서는 ActionsControl의 이벤트 처리기를 만들어야 합니다. ActionsControl 생성자에 이 코드를 배치할 수 있습니다. 이벤트 처리기를 만드는 방법에 대한 자세한 내용은 방법: Office 프로젝트에서 이벤트 처리기 만들기를 참조하세요.

    public ActionsControl()
    {
        InitializeComponent();
        this.Load += new EventHandler(ActionsControl_Load);
    }
    

작업 창 표시

런타임에 컨트롤을 추가하기 전에는 작업 창이 표시되지 않습니다.

작업창을 표시하려면

  1. 솔루션 탐색기에서 ThisWorkbook.vb 또는 ThisWorkbook.cs를 마우스 오른쪽 단추로 클릭한 다음, 코드 보기를 클릭합니다.

  2. ThisWorkbook 클래스에서 사용자 정의 컨트롤의 새 인스턴스를 만듭니다.

    ActionsControl actions = new ActionsControl();
    
  3. ThisWorkbookStartup 이벤트 처리기에서 작업 창에 컨트롤을 추가합니다.

    private void ThisWorkbook_Startup(object sender, System.EventArgs e)
    {
        this.ActionsPane.Controls.Add(actions);
    }
    

애플리케이션 테스트

이제 문서를 테스트하여 문서를 열 때 작업 창이 열리고 컨트롤에 마스터/세부 정보 관계가 있는지 확인할 수 있습니다.

문서를 테스트하려면

  1. F5 키를 눌러 프로젝트를 실행합니다.

  2. 작업 창이 표시되는지 확인합니다.

  3. 목록 상자에서 회사를 선택합니다. 회사 이름이 NamedRange 컨트롤에 나열되고 제품 세부 정보가 ListObject 컨트롤에 나열되는지 확인합니다.

  4. 다양한 회사를 선택하여 회사 이름과 제품 세부 정보가 적절하게 변경되는지 확인합니다.

다음 단계

다음으로 수행할 수 있는 몇 가지 작업은 다음과 같습니다.