C#에서 Excel 문서를 생성, 읽기 또는 업데이트하는 방법

발행: (2025년 12월 12일 오전 11:07 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

.NET용 Spire.XLS 시작하기

코드에 들어가기 전에 개발 환경을 설정하세요. .NET용 Spire.XLS는 NuGet을 통해 C# 프로젝트에 추가할 수 있습니다.

NuGet으로 설치

  1. Visual Studio에서 프로젝트를 엽니다.
  2. Solution Explorer에서 프로젝트를 마우스 오른쪽 버튼으로 클릭 → Manage NuGet Packages….
  3. Spire.XLS를 검색하고 패키지를 설치합니다.

기본 초기화

using Spire.Xls;
using System;
using System.IO;

// ... inside your method or class
Workbook workbook = new Workbook();
// Your Excel operations will go here
workbook.Dispose(); // Always dispose of the workbook object

C#에서 Excel 문서 만들기

Spire.XLS를 사용하면 새 워크북을 만들고, 시트를 추가하고, 데이터를 채우고, 스타일을 적용하는 작업이 간단합니다.

예제: 데이터와 스타일이 포함된 기본 Excel 파일 만들기

using Spire.Xls;
using System;
using System.IO;
using System.Drawing; // For Color

class ExcelCreator
{
    public static void CreateExcelFile()
    {
        // 1. Create a new workbook
        Workbook workbook = new Workbook();

        // 2. Get the first worksheet and rename it
        Worksheet sheet = workbook.Worksheets[0];
        sheet.Name = "Product Sales";

        // 3. Write header row
        sheet.Range["A1"].Text = "Product ID";
        sheet.Range["B1"].Text = "Product Name";
        sheet.Range["C1"].Text = "Quantity";
        sheet.Range["D1"].Text = "Unit Price";
        sheet.Range["E1"].Text = "Total";

        // Apply basic styling to header
        CellStyle headerStyle = workbook.Styles.Add("HeaderStyle");
        headerStyle.Font.IsBold = true;
        headerStyle.KnownColor = ExcelColors.LightYellow;
        headerStyle.HorizontalAlignment = HorizontalAlignType.Center;
        sheet.Range["A1:E1"].Style = headerStyle;

        // 4. Populate data rows
        sheet.Range["A2"].Value = "P001";
        sheet.Range["B2"].Text = "Laptop";
        sheet.Range["C2"].NumberValue = 10;
        sheet.Range["D2"].NumberValue = 1200.50;
        sheet.Range["E2"].Formula = "=C2*D2";

        sheet.Range["A3"].Value = "P002";
        sheet.Range["B3"].Text = "Mouse";
        sheet.Range["C3"].NumberValue = 50;
        sheet.Range["D3"].NumberValue = 25.00;
        sheet.Range["E3"].Formula = "=C3*D3";

        // 5. Auto‑fit columns for readability
        for (int i = 1; i <= 5; i++)
            sheet.AutoFitColumn(i);

        // 6. Save the workbook
        string filePath = "ProductSales.xlsx";
        workbook.SaveToFile(filePath, ExcelVersion.Version2016);
        Console.WriteLine($"Excel file created at: {Path.GetFullPath(filePath)}");

        // 7. Clean up
        workbook.Dispose();
    }
}

이 예제는 다음을 보여줍니다:

  • 워크북 및 워크시트 생성
  • 문자열 및 숫자 데이터 쓰기
  • 기본 스타일 적용(굵은 텍스트, 배경색, 정렬)
  • 수식 추가
  • 파일 저장

Excel 문서에서 데이터 읽기

Spire.XLS는 기존 워크북을 로드하고 셀 값, 수식, 주석 등에 접근할 수 있게 해줍니다.

예제: 기존 Excel 파일에서 데이터 읽기

using Spire.Xls;
using System;
using System.IO;

class ExcelReader
{
    public static void ReadExcelFile(string filePath)
    {
        if (!File.Exists(filePath))
        {
            Console.WriteLine($"Error: File not found at {filePath}");
            return;
        }

        // 1. Load the workbook
        Workbook workbook = new Workbook();
        workbook.LoadFromFile(filePath);

        // 2. Get the first worksheet
        Worksheet sheet = workbook.Worksheets[0];
        Console.WriteLine($"--- Reading data from sheet: {sheet.Name} ---");

        // 3. Read specific cells
        Console.WriteLine($"Product ID (A2): {sheet.Range["A2"].Text}");
        Console.WriteLine($"Product Name (B2): {sheet.Range["B2"].Text}");
        Console.WriteLine($"Quantity (C2): {sheet.Range["C2"].NumberValue}");
        Console.WriteLine($"Unit Price (D2): {sheet.Range["D2"].NumberValue}");
        Console.WriteLine($"Total (E2) – Value: {sheet.Range["E2"].NumberValue}");
        Console.WriteLine($"Total (E2) – Formula: {sheet.Range["E2"].Formula}");

        // 4. Iterate through all used cells
        Console.WriteLine("\n--- All Data ---");
        for (int row = 1; row <= sheet.LastRow; row++)
        {
            for (int col = 1; col <= sheet.LastColumn; col++)
            {
                Console.Write($"{sheet.Range[row, col].DisplayText}\t");
            }
            Console.WriteLine();
        }

        // 5. Clean up
        workbook.Dispose();
    }
}

핵심 포인트:

  • LoadFromFile은 기존 워크북을 로드합니다.
  • Range["A2"](또는 Range[row, col])는 개별 셀에 접근합니다.
  • DisplayText는 셀 값의 서식이 적용된 문자열을 반환합니다.

기존 Excel 문서 업데이트하기

워크북을 수정하는 절차는 동일합니다: 로드 → 변경 → 저장.

예제: 기존 Excel 파일 업데이트하기

using Spire.Xls;
using System;
using System.IO;

class ExcelUpdater
{
    public static void UpdateExcelFile(string filePath)
    {
        if (!File.Exists(filePath))
        {
            Console.WriteLine($"Error: File not found at {filePath}");
            return;
        }

        // 1. Load the workbook
        Workbook workbook = new Workbook();
        workbook.LoadFromFile(filePath);

        // 2. Get the first worksheet
        Worksheet sheet = workbook.Worksheets[0];
        Console.WriteLine($"--- Updating data in sheet: {sheet.Name} ---");

        // 3. Modify a specific cell (e.g., change quantity of Laptop from 10 to 15)
        sheet.Range["C2"].NumberValue = 15;
        Console.WriteLine($"Updated Quantity for Laptop (C2) to: {sheet.Range["C2"].NumberValue}");

        // 4. Save the changes (overwrite or save as a new file)
        string updatedPath = "ProductSales_Updated.xlsx";
        workbook.SaveToFile(updatedPath, ExcelVersion.Version2016);
        Console.WriteLine($"Updated file saved at: {Path.GetFullPath(updatedPath)}");

        // 5. Clean up
        workbook.Dispose();
    }
}

이 스니펫은 다음을 보여줍니다:

  • 기존 워크북 로드
  • 셀 값(또는 수식, 스타일 등) 변경
  • SaveToFile로 수정 사항 저장
Back to Blog

관련 글

더 보기 »

C#에서 Excel 셀 병합 방법

필수 조건 시작하기 전에 다음이 설치되어 있는지 확인하십시오: - 머신에 Visual Studio가 설치되어 있음. - Spire.XLS가 설치되어 있음. 다운로드는 ...에서 할 수 있습니다.