연습: Microsoft Office 어셈블리의 형식 정보 포함(C# 및 Visual Basic)

COM 개체를 참조하는 응용 프로그램에 형식 정보를 포함하면 PIA(주 Interop 어셈블리)가 필요 없도록 할 수 있습니다. 또한 포함된 형식 정보를 사용하면 응용 프로그램의 버전 독립성을 이룰 수 있습니다. 즉, 각 버전에 대한 특정 PIA가 없이도 여러 COM 라이브러리 버전의 형식을 사용하는 프로그램을 작성할 수 있습니다. 이는 Microsoft Office 라이브러리의 개체를 사용하는 응용 프로그램의 일반적인 시나리오입니다. 형식 정보를 포함하면 프로그램이나 각 Microsoft Office 버전의 PIA를 다시 배포하지 않고도 동일한 빌드의 프로그램이 서로 다른 컴퓨터에서 여러 버전의 Microsoft Office와 함께 작동하도록 할 수 있습니다.

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

  • Microsoft Office의 자동화 개체를 사용하고 Microsoft Office COM 라이브러리의 형식 정보를 포함하는 응용 프로그램을 만듭니다.

  • PIA 없이 여러 버전의 Microsoft Office와 함께 응용 프로그램을 게시하고 실행합니다.

참고

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

사전 요구 사항

이 연습에서는 다음 사항이 필요합니다.

  • Visual Studio 및 Microsoft Excel이 설치된 컴퓨터

  • .NET Framework 4 및 여러 버전의 Excel이 설치된 컴퓨터

여러 버전의 Microsoft Office와 함께 작동하는 응용 프로그램을 만들려면

  1. Excel이 설치된 컴퓨터에서 Visual Studio를 시작합니다.

  2. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.

  3. 새 프로젝트 대화 상자의 프로젝트 형식 창에서 Windows가 선택되었는지 확인합니다. 템플릿 창에서 콘솔 응용 프로그램을 선택합니다. 이름 상자에 CreateExcelWorkbook을 입력한 다음 확인을 클릭합니다. 새 프로젝트가 만들어집니다.

  4. Visual Basic을 사용하는 경우 CreateExcelWorkbook 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다. 참조 탭을 클릭합니다. 추가 단추를 클릭합니다. Visual C#을 사용하는 경우 솔루션 탐색기에서 References 폴더를 마우스 오른쪽 단추로 클릭한 다음 참조 추가를 클릭합니다.

  5. .NET 탭에서 최신 버전의 Microsoft.Office.Interop.Excel을 클릭합니다. 예를 들어, Microsoft.Office.Interop.Excel 14.0.0.0을 클릭합니다. 확인을 클릭합니다.

  6. CreateExcelWorkbook 프로젝트에 대한 참조 목록에서 이전 단계에서 추가한 Microsoft.Office.Interop.Excel에 대한 참조를 선택합니다. 속성 창에서 Embed Interop Types 속성이 True로 설정되어 있는지 확인합니다.

    참고

    이 연습에서 만든 응용 프로그램은 포함된 interop 형식 정보 때문에 여러 버전의 Microsoft Office와 함께 실행됩니다. Embed Interop Types 속성이 False로 설정되어 있으면 응용 프로그램을 실행할 각 Microsoft Office 버전의 PIA를 포함해야 합니다.

  7. Visual Basic을 사용하는 경우에는 Module1.vb 파일을 두 번 클릭하고 Visual C#을 사용하는 경우에는 Program.cs 파일을 두 번 클릭합니다. 파일의 코드를 다음 코드로 바꿉니다.

    Imports Excel = Microsoft.Office.Interop.Excel
    
    Module Module1
    
        Sub Main()
            Dim values = {4, 6, 18, 2, 1, 76, 0, 3, 11}
    
            CreateWorkbook(values, "C:\SampleFolder\SampleWorkbook.xls")
        End Sub
    
        Sub CreateWorkbook(ByVal values As Integer(), ByVal filePath As String)
            Dim excelApp As Excel.Application = Nothing
            Dim wkbk As Excel.Workbook
            Dim sheet As Excel.Worksheet
    
            Try
                ' Start Excel and create a workbook and worksheet.
                excelApp = New Excel.Application
                wkbk = excelApp.Workbooks.Add()
                sheet = CType(wkbk.Sheets.Add(), Excel.Worksheet)
                sheet.Name = "Sample Worksheet"
    
                ' Write a column of values.
                For i = 1 To values.Length - 1
                    sheet.Cells(i, 1) = values(i)
                Next
    
                ' Suppress any alerts and save the file. Create the directory 
                ' if it does not exist. Overwrite the file if it exists.
                excelApp.DisplayAlerts = False
                Dim folderPath = My.Computer.FileSystem.GetParentPath(filePath)
                If Not My.Computer.FileSystem.DirectoryExists(folderPath) Then
                    My.Computer.FileSystem.CreateDirectory(folderPath)
                End If
                wkbk.SaveAs(filePath)
        Catch
    
            Finally
                sheet = Nothing
                wkbk = Nothing
    
                ' Close Excel.
                excelApp.Quit()
                excelApp = Nothing
            End Try
    
        End Sub
    End Module
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using Excel = Microsoft.Office.Interop.Excel;
    
    namespace CreateExcelWorkbook
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] values = {4, 6, 18, 2, 1, 76, 0, 3, 11};
    
                CreateWorkbook(values, @"C:\SampleFolder\SampleWorkbook.xls");
            }
    
            static void CreateWorkbook(int[] values, string filePath)
            {
                Excel.Application excelApp = null;
                Excel.Workbook wkbk;
                Excel.Worksheet sheet;
    
                try
                {
                        // Start Excel and create a workbook and worksheet.
                        excelApp = new Excel.Application();
                        wkbk = excelApp.Workbooks.Add();
                        sheet = wkbk.Sheets.Add() as Excel.Worksheet;
                        sheet.Name = "Sample Worksheet";
    
                        // Write a column of values.
                        for (int i = 1; i < values.Length; i++)
                        {
                            sheet.Cells[i, 1] = values[i];
                        }
    
                        // Suppress any alerts and save the file. Create the directory 
                        // if it does not exist. Overwrite the file if it exists.
                        excelApp.DisplayAlerts = false;
                        string folderPath = Path.GetDirectoryName(filePath);
                        if (!Directory.Exists(folderPath))
                        {
                            Directory.CreateDirectory(folderPath);
                        }
                        wkbk.SaveAs(filePath);
                }
                catch
                {
                }
                finally
                {
                    sheet = null;
                    wkbk = null;
    
                    // Close Excel.
                    excelApp.Quit();
                    excelApp = null;
                }
            }
        }
    }
    
  8. 프로젝트를 저장합니다.

  9. Ctrl+F5를 눌러 프로젝트를 빌드하고 실행합니다. 예제 코드에서 지정한 위치(예: C:\SampleFolder\SampleWorkbook.xls)에 Excel 통합 문서가 만들어졌는지 확인합니다.

여러 버전의 Microsoft Office가 설치된 컴퓨터에 응용 프로그램을 게시하려면

  1. 이 연습에서 만든 프로젝트를 Visual Studio에서 엽니다.

  2. 빌드 메뉴에서 CreateExcelWorkbook 게시를 클릭합니다. 게시 마법사의 단계를 수행하여 설치 가능한 버전의 응용 프로그램을 만듭니다. 자세한 내용은 게시 마법사를 참조하십시오.

  3. .NET Framework 4 및 여러 버전의 Excel이 설치된 컴퓨터에 응용 프로그램을 설치합니다.

  4. 설치가 완료되면 설치된 프로그램을 실행합니다.

  5. 샘플 코드에서 지정한 위치(예: C:\SampleFolder\SampleWorkbook.xls)에 Excel 통합 문서가 만들어졌는지 확인합니다.

참고 항목

작업

연습: 관리되는 어셈블리의 형식 포함(C# 및 Visual Basic)

참조

/link(Visual Basic)

/link(C# 컴파일러 옵션)