푸터 콘텐츠로 바로가기
IRONWORD 사용하기

C#을 사용하여 Word 문서를 조작하는 방법

Microsoft는 Word를 워드 프로세서로 사용하기 위해 만들었습니다. 초기에는 Xenix 시스템용 Multi-Tool Word라는 이름으로 사용 가능하였으며, 1983년 10월 25일에 도입되었습니다. 이후 버전에서는 SCO Unix(1990), Microsoft Windows(1989), Atari ST(1988), OS/2(1989), AT&T UNIX PC(1985), DOS에서 실행되는 IBM PC(1983), Classic macOS에서 실행되는 Apple Macintosh(1985), macOS(2001), 웹 브라우저(2010), iOS(2014) 및 Android(2015)와 같은 다양한 운영 체제용으로 개발되었습니다. Wine을 사용하여 Linux에서 Microsoft Word의 이전 버전을 실행할 수 있습니다.

상업용 Word 버전은 단독 애플리케이션으로 라이선스를 받을 수도 있고, Microsoft 365의 구성 요소로도 사용할 수 있으며, 이는 영구 라이선스 또는 Microsoft 365 구독의 일부로 구매할 수 있습니다. 이 문서에서는 Microsoft Interop 어셈블리를 사용하여 C#으로 Word 문서를 조작하는 방법과 IronXL 사용하여 Excel 문서를 편집하는 방법을 살펴보겠습니다.

How To Manipulate Word Document Using C#

  1. 새로운 Visual Studio 프로젝트 작업을 만드세요.
  2. Word 문서를 읽기 위한 필요한 라이브러리를 설치하세요.
  3. Word 문서를 조작하려면 기존 파일을 로드하거나 새로운 파일을 만드세요.
  4. 문서 데이터를 편집하고 파일을 구문 분석하세요.
  5. 생성된 모든 객체를 제거하세요.

Microsoft Interop이란

C# 또는 VB.NET으로 작성된 프로그램은 Microsoft Word의 Office Interoperability을 사용하여 Word 문서(DOC, DOCX 및 RTF)를 생성하거나 열 수 있습니다. 그러나 프로젝트에서 사용할 때 많은 단점이 있습니다.

이 문서에서는 C# 또는 VB.NET에서 Microsoft Office Interop(Word Automation)을 사용할 때 겪을 수 있는 빈번한 문제를 논의할 것입니다.

예를 들어:

  • 단어 자동화를 위해 필요한 모든 클라이언트 PC는 Microsoft Word에 대한 라이센스가 있어야 합니다.
  • 모든 클라이언트 PC에 동일한 버전의 Microsoft Word가 설치되어야 합니다.
  • 자동화를 사용할 때 Word는 다른 파일과 DLL을 백그라운드에서 로드하여 몇 메가바이트의 RAM을 사용합니다.
  • Microsoft Word API는 COM 객체를 통해 액세스됩니다. 관리 코드에서 COM 객체를 호출할 때, 타입 변환, COM 래퍼가 필요하며, .NET Framework 통합이 좋지 않기 때문에 문제가 발생할 수 있습니다.

Visual Studio에서 새 프로젝트 생성하기

Interop 라이브러리를 사용하기 전에 Visual Studio를 시작하고 .NET 프로젝트를 생성해야 합니다. Visual Studio는 모든 버전과 호환되지만, 최신 버전이 권장됩니다. 요구에 따라 프로젝트 템플릿을 개발하거나 Windows Forms와 유사한 애플리케이션을 개발할 수 있습니다. 이번 경우를 간단히 하기 위해 콘솔 애플리케이션을 사용할 것입니다.

C#를 사용하여 Word 문서를 조작하는 방법: 그림 1 - 새로운 Visual Studio 프로젝트 만들기

프로젝트 세부 정보 구성

다음으로, 프로젝트의 위치와 이름을 제공하세요.

C#를 사용하여 Word 문서를 조작하는 방법: 그림 2 - 새로운 VS 프로젝트 설정

.NET Framework를 사용하여 새로운 프로젝트 파일 생성

Framework 드롭다운 메뉴를 사용하여 .NET Framework를 선택할 수 있습니다. 이 프로젝트에서는 Dot.NET Framework 4.7을 사용할 것입니다. 다음 작업은 "생성" 버튼을 누르는 것입니다.

애플리케이션이 솔루션을 생성한 후, Program.cs 파일에 액세스하여 코드를 입력하고 프로그램을 빌드하거나 실행할 수 있습니다.

C#를 사용하여 Word 문서를 조작하는 방법: 그림 3 - 새로운 .NET 프로젝트 .cs 파일

이제 Microsoft.Office.Interop.Word 라이브러리가 추가되었으므로 코드를 테스트할 수 있습니다.

Interop 라이브러리 설치

다음 수리는 Interop 라이브러리를 설치하는 것입니다. 이를 accomplish하기 위해 NuGet 패키지 관리자 콘솔에 다음 명령을 입력하세요:

Install-Package Microsoft.Office.Interop.Word

How To Manipulate A Word document Using C#: Figure 4 - For installing the IronXL library, you can use the Package Manager Console and enter the given command: Install-Package IronXl.Excel

또 다른 방법으로 NuGet 패키지 관리자를 사용하여 "Interop" 패키지를 찾을 수 있습니다. Interop과 관련된 모든 NuGet 패키지 중에서 우리는 이 목록에서 다운로드할 필요 패키지를 선택할 수 있습니다.

C#를 사용하여 Word 문서를 조작하는 방법: 그림 5 - `Microsoft.Office.Interop.Word` 라이브러리 선택

필요한 모든 라이브러리를 설치한 후, DOCX 파일 편집을 시작할 수 있습니다.

Interop을 사용하여 기존 Word 문서 조작

Microsoft Word를 사용하려면 우선 Microsoft.Office.Interop.Word.Application 인스턴스를 생성해야 합니다. Word 문서의 통신은 이 인스턴스에서 이루어질 것입니다. 다음 단계는 방금 생성한 Microsoft.Office.Interop.Word.Application 인스턴스의 Documents 속성을 사용하여 새로운 Word 문서 인스턴스를 생성하는 것입니다. 아래 C# 코드 발췌에서 볼 수 있듯이, 이는 프로그램적으로 Word 문서를 조작할 수 있게 해줍니다:

using System;
using Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        try
        {
            // Create a new instance of Word Application
            var WordApp = new Microsoft.Office.Interop.Word.Application();
            // Open an existing document
            var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
            // Edit the content of the first paragraph
            WordDoc.Paragraphs[1].Range.Text = "New text here...";
            // Save the edited document
            WordDoc.SaveAs(@"d:/NewDemo.docx");
            // Close the document
            WordDoc.Close();
            // Quit the Word application
            WordApp.Quit();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
    }
}
using System;
using Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        try
        {
            // Create a new instance of Word Application
            var WordApp = new Microsoft.Office.Interop.Word.Application();
            // Open an existing document
            var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
            // Edit the content of the first paragraph
            WordDoc.Paragraphs[1].Range.Text = "New text here...";
            // Save the edited document
            WordDoc.SaveAs(@"d:/NewDemo.docx");
            // Close the document
            WordDoc.Close();
            // Quit the Word application
            WordApp.Quit();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
    }
}
$vbLabelText   $csharpLabel

위의 코드에서 우리는 C#에서 Word 문서를 편집할 수 있습니다. 먼저 Interop을 사용하여 Word 응용 프로그램의 인스턴스를 생성합니다. 그런 다음 Open 메서드를 사용하여 기존 Word 파일을 열고 이를 문서 객체로 변환합니다. 그런 다음 문서와 상호 작용할 수 있는 다양한 속성과 메서드에 액세스할 수 있습니다. 예제에서는 Paragraphs 컬렉션과 인덱스를 사용하여 어느 단락을 편집할지를 지정하여 첫 번째 단락의 텍스트를 업데이트합니다. 마지막으로 SaveAs를 사용하여 변경 사항을 저장하고 문서와 응용 프로그램을 올바르게 닫습니다.

IronXL Interop 대안 라이브러리

IronXL은 Microsoft Interop의 대안으로 .NET 프로그램에서 Excel 파일을 처리하는 데 사용할 수 있습니다. Microsoft Interop이 Interop 어셈블리를 통해 Excel과 상호 작용해야 하는 반면, IronXL은 .NET 컨텍스트에서 Excel 파일을 프로그래밍 방식으로 조작하는 더 간결하고 효과적이며 강력한 방법을 제공합니다.

Microsoft Interop 대신 IronXL을 사용하는 것에는 다음과 같은 여러 가지 이점이 있습니다:

  • 성능 및 자원 효율성: 컴퓨터에 Excel 응용 프로그램이 설치되어야 하는 Microsoft Interop과 달리, IronXL은 더 나은 성능을 제공하며 Excel 응용 프로그램에 의존하지 않기 때문에 적은 자원을 사용합니다.
  • 사용 용이성 및 간편성: IronXL은 쉽고 간단한 API를 제공하여 Microsoft Interop의 복잡한 문제 없이 Excel 파일 읽기, 쓰기 및 조작을 단순화합니다.
  • 호환성 및 의존성: IronXL은 Microsoft Excel의 설치가 필요하지 않기 때문에 다양한 Excel 또는 Office 버전에서 발생할 수 있는 의존성 및 호환성 문제를 제거합니다.
  • 플랫폼 독립성: 특정 Microsoft Office 버전과 더 밀접하게 연관될 수 있는 Microsoft Interop과 달리, IronXL은 다양한 환경과 플랫폼에 걸쳐 더 큰 유연성과 배포 용이성을 제공합니다.

.NET 개발자가 Excel 파일을 프로그래밍 방식으로 운영해야 할 경우, IronXL은 사용의 용이성, 속도, 타사 소프트웨어 설치 의존성 감소로 인해 종종 더 나은 선택입니다. 그러나 IronXL과 Microsoft Interop 사이의 결정은 프로젝트의 세부사항, 이미 존재하는 인프라, 각 라이브러리에 대한 사용자 전문가 수준에 의해 영향을 받을 수 있습니다.

이 옵션들 간 선택할 때 항상 애플리케이션의 요구 사항을 염두에 두세요. IronXL 라이브러리에 대해 자세히 알아보려면 이 링크를 확인하세요.

IronXL 라이브러리 설치하기

앞으로 패치에 IronXL 라이브러리가 필요하므로 설치하세요. 이 작업을 완료하려면 NuGet 패키지 관리자 콘솔을 열고 다음 명령을 입력하세요:

Install-Package IronWord

C#를 사용하여 Word 문서를 조작하는 방법: 그림 6 - 콘솔 명령을 사용하여 IronXL 설치

NuGet 패키지 관리자를 통해 'IronXL' 패키지를 검색하는 것 또한 추가적인 선택사항입니다. IronXL과 관련된 모든 NuGet 패키지 목록에서 우리는 다운로드가 필요한 것을 선택할 수 있습니다.

C#를 사용하여 Word 문서를 조작하는 방법: 그림 7 - 탐색을 통해 `IronXl.Excel` Install-Package

IronXL을 사용하여 Excel 문서 편집하기

데이터는 몇 줄의 코드만으로 XLSX 또는 XLS 형식으로 내보낼 수 있습니다. 다음 소스 코드 예제는 Excel 파일에서 데이터를 간단한 표 형식으로 내보내는 방법을 보여줍니다:

using IronXL;

class Program
{
    static void Main()
    {
        // Load an existing Excel file
        var workbook = WorkBook.Load("Demo file.xlsx");
        // Access the first sheet or the sheet by name
        var ws = workbook.GetWorkSheet("Sheet1");
        // Read a value from a cell and output it to the console
        string address_val = ws["A1"].ToString();
        Console.WriteLine(address_val);
        // Modify a cell's value
        ws["A2"].Value = "Hello World";
        // Save the workbook to different formats
        workbook.SaveAs("export.xlsx");
        workbook.SaveAs("export.xls");
        workbook.WorkSheets[0].SaveAs("export.xls");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        // Load an existing Excel file
        var workbook = WorkBook.Load("Demo file.xlsx");
        // Access the first sheet or the sheet by name
        var ws = workbook.GetWorkSheet("Sheet1");
        // Read a value from a cell and output it to the console
        string address_val = ws["A1"].ToString();
        Console.WriteLine(address_val);
        // Modify a cell's value
        ws["A2"].Value = "Hello World";
        // Save the workbook to different formats
        workbook.SaveAs("export.xlsx");
        workbook.SaveAs("export.xls");
        workbook.WorkSheets[0].SaveAs("export.xls");
    }
}
$vbLabelText   $csharpLabel

이전 예제는 파일 경로와 이름에 대한 인수를 사용하는 Load 함수를 호출하여 이미 존재하는 Excel 파일을 로드합니다. 이제 파일을 WorkBook 객체로 가져오기가 완료되었습니다. 그런 다음 GetWorkSheet을 사용하여 Excel 워크시트를 로드할 수 있으며, 이를 통해 시트 이름을 사용하여 워크시트를 로드할 수 있습니다. 그런 다음 Excel 주소를 사용하여 값을 읽었습니다. Excel 파일 읽기에 대해 더 알고 싶다면 여기를 클릭하세요.

우리는 동일한 Excel 주소를 사용하여 Excel 시트의 값을 변경할 수 있습니다. Excel 문서는 WorkBook 객체가 제공하는 SaveAs 기능을 사용하여 XLSX 또는 XLS 파일로 저장할 수 있습니다. 이 과정을 사용하면 전체 파일이 선택된 형식으로 저장됩니다.

C#를 사용하여 Word 문서를 조작하는 방법: 그림 8 - 콘솔 출력

또한, 인덱스 값이나 이름을 참조하여 특정 Excel 워크시트를 선택할 수도 있습니다. 그 다음, SaveAs 옵션을 사용하여 Excel 스프레드시트의 데이터를 다른 파일로 내보낼 수 있습니다. Excel 파일의 서식 지정 및 내보내기에 대해 더 알고 싶다면 이 링크를 클릭하세요.

결론

IronXL은 Excel에서 가장 인기 있는 애드온 중 하나입니다. 추가 외부 라이브러리에 의존하지 않습니다. 자체 내장되어 있기 때문에 Microsoft Excel을 설치할 필요가 없습니다. 다양한 채널을 통해 운영됩니다. 이는 Word 문서를 편집하기 위해 추가 라이브러리를 사용하여 파일을 파싱해야 하는 Interop 라이브러리와 대조됩니다.

Microsoft Excel 문서를 사용하는 모든 프로그래밍 프로세스에 대한 완전한 솔루션은 IronXL입니다. 계산, 문자열 또는 숫자 정렬, 가지치기, 추가, 찾기 및 바꾸기, 병합 및 분할, 파일 저장 등의 많은 작업이 가능합니다. 스프레드시트 데이터 검증뿐만 아니라 새로운 형태의 셀 데이터를 만들 수 있습니다. 파일 읽기 및 쓰기뿐만 아니라 Excel 데이터 처리를 용이하게 합니다.

IronXL이 처음 출시되었을 때 가격은 $799였습니다. 또는 고객은 소프트웨어 업데이트와 지원을 받기 위해 1년 구독료를 지불하는 옵션을 선택할 수 있습니다. 요금으로 IronXL은 무단 재배포에 대한 보안을 제공합니다. IronXL 라이선스 페이지로 이동하세요. Iron Software 제품에 대해 더 알고 싶다면 여기를 확인하세요.

자주 묻는 질문

C#을 사용하여 Word 문서를 어떻게 조작할 수 있나요?

C#을 사용하여 Word 문서를 조작하려면 Microsoft.Office.Interop.Word 라이브러리를 사용할 수 있습니다. 이 방법은 Word 응용 프로그램의 인스턴스를 생성하고, 문서를 열고, 변경 사항을 적용하고, 문서를 프로그램적으로 저장하는 과정을 포함합니다.

Microsoft Interop을 사용하여 Word 문서를 조작할 때의 제한 사항은 무엇입니까?

Microsoft Interop 사용의 제한 사항으로는 각 클라이언트 PC에 Microsoft Word의 라이선스 버전이 필요하다는 점, 버전 호환성 문제 발생 가능성, 백그라운드 프로세스로 인한 메모리 사용량 증가 등이 있습니다.

Visual Studio에서 C# 프로젝트를 Word 문서와 연동하도록 설정하려면 어떻게 해야 하나요?

Visual Studio에서 콘솔 애플리케이션을 선택하고 필요한 프로젝트 세부 정보를 구성한 다음 올바른 .NET Framework 버전을 선택하여 새 프로젝트를 설정할 수 있습니다. 그런 다음 NuGet 패키지 관리자를 통해 Microsoft.Office.Interop.Word에 대한 참조를 추가해야 합니다.

IronXL 과 Microsoft Interop은 Excel 파일 처리에 있어 어떤 차이점이 있습니까?

IronXL Microsoft Interop에 비해 Excel 설치가 필요 없고, 성능이 우수하며, Excel 파일 조작을 위한 API가 더 간단하다는 등의 장점을 제공합니다. 또한 Interop 방식에서 발생하는 호환성 문제도 해결합니다.

.NET 프로젝트에 IronXL 설치하려면 어떻게 해야 하나요?

.NET 프로젝트에 IronXL 설치하려면 Visual Studio에서 NuGet 패키지 관리자 콘솔을 열고 Install-Package IronXl.Excel 명령을 실행하세요. NuGet 패키지 관리자 UI에서 IronXL 검색하여 직접 설치할 수도 있습니다.

C#에서 IronXL 사용하여 Excel 문서를 편집하는 방법은 무엇입니까?

IronXL 사용하면 WorkBook.Load 를 통해 Excel 문서를 불러오고, 특정 워크시트에 접근하고, 셀 값을 수정하고, WorkBook 및 WorkSheet 개체에서 제공하는 메서드를 사용하여 통합 문서를 저장함으로써 Excel 문서를 편집할 수 있습니다.

IronXL 사용하여 Excel 파일을 조작할 때의 이점은 무엇입니까?

IronXL 향상된 성능, 사용 편의성 및 플랫폼 독립성과 같은 이점을 제공합니다. Excel 설치가 필요하지 않으므로 종속성 문제를 해결하고 .NET 애플리케이션에 원활하게 통합할 수 있습니다.

Microsoft Interop을 사용하지 않고 Word 문서 작업을 자동화할 수 있습니까?

예, 다양한 타사 라이브러리가 Microsoft Interop을 대체하여 Word 문서 작업을 자동화할 수 있는 기능을 제공하며, 더 간단한 API를 제공하고 Microsoft Word를 설치할 필요가 없습니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me