본문 바로가기
  • _^**_
무근본 IT 지식 공유

[무근본 c#]엑셀 여러파일 하나의 시트에 합치는 코드

by 크리드로얄워터 2024. 3. 1.
반응형

C#에서 여러 엑셀 파일을 하나로 합치는 작업 소개


여러 방법으로 수행될 수 있지만,

가장 일반적인 접근 방법 중 하나는 EPPlus 라이브러리를 사용하는 것입니다.

EPPlus는 .NET 개발자들이 엑셀 파일을 생성하고, 읽고, 쓰고, 수정할 수 있게 해주는 오픈 소스 라이브러리입니다.

아래는 EPPlus를 사용하여 여러 엑셀 파일의 내용을 하나의 엑셀 파일로 합치는 간단한 예시입니다.


필수 조건



• EPPlus 라이브러리를 프로젝트에 추가합니다. NuGet 패키지 매니저를 통해 EPPlus를 설치할 수 있습니다.


C# 책추천


https://link.coupang.com/a/bswX8l

Do it! C# 프로그래밍 입문:딱 필요한 문법만 빠르게 배우고 프로젝트 실습까지!

COUPANG

www.coupang.com

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

Install-Package EPPlus


using OfficeOpenXml;
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        MergeExcelFiles(@"C:\path\to\output.xlsx", @"C:\path\to\source\directory");
    }

    static void MergeExcelFiles(string outputFile, string sourceDirectory)
    {
        using (var package = new ExcelPackage())
        {
            var worksheet = package.Workbook.Worksheets.Add("MergedData");

            var row = 1; // Start from the first row in the output file
            var files = Directory.GetFiles(sourceDirectory, "*.xlsx");

            foreach (var file in files)
            {
                using (var sourcePackage = new ExcelPackage(new FileInfo(file)))
                {
                    foreach (var sheet in sourcePackage.Workbook.Worksheets)
                    {
                        for (int i = sheet.Dimension.Start.Row; i <= sheet.Dimension.End.Row; i++)
                        {
                            for (int j = sheet.Dimension.Start.Column; j <= sheet.Dimension.End.Column; j++)
                            {
                                worksheet.Cells[row, j].Value = sheet.Cells[i, j].Value;
                            }
                            row++;
                        }
                    }
                }
            }

            package.SaveAs(new FileInfo(outputFile));
        }
    }
}
반응형

댓글