IRONXL 사용하여 .NET C#에서 Excel 파일 다운로드: XLSX, CSV 등 다양한 형식으로 데이터 내보내기 커티스 차우 업데이트됨:3월 1, 2026 다운로드 IronXL NuGet 다운로드 DLL 다운로드 무료 체험 시작하기 LLM용 사본 LLM용 사본 LLM용 마크다운 형식으로 페이지를 복사하세요 ChatGPT에서 열기 ChatGPT에 이 페이지에 대해 문의하세요 제미니에서 열기 제미니에게 이 페이지에 대해 문의하세요 Grok에서 열기 Grok에게 이 페이지에 대해 문의하세요 혼란 속에서 열기 Perplexity에게 이 페이지에 대해 문의하세요 공유하다 페이스북에 공유하기 트위터에 공유하기 LinkedIn에 공유하기 URL 복사 이메일로 기사 보내기 스프레드시트 내보내기 기능을 구현하는 것은 기업 웹 애플리케이션의 일반적인 요구사항이지만 이러한 파일을 생성하고 전달하는 수작업 과정은 종종 상당한 기술적 복잡성을 초래합니다. 개발자는 일관된 브라우저 동작을 보장하고 데이터 손상을 방지하기 위해 MemoryStream 관리를 세밀하게 조정하고 정확한 HTTP 콘텐츠 배포 헤더를 구성해야 합니다. 이 기사는 IronXL 라이브러리를 사용하여 ASP .NET C# MVC 컨트롤러에서 Excel 파일을 생성하고 다운로드하는 데 필요한 모든 것을 설명합니다. 우리는XLSX형식으로 실제 Excel 파일로 데이터를 내보내고,CSV파일을 스트리밍하며, 업로드를 재내보내기 위해 변환하고, 파일 다운로드를 브라우저로 반환하는 모든 과정을 Microsoft Office를 설치하거나 Excel Interop에 의존하지 않고 수행할 것입니다. IronXL NuGet 패키지를 설치하고 무료 체험을 시작하여 소스 코드 예제를 함께 따라가십시오. !{--010011000100100101000010010100100100000101010010010110010101111101001110010101010001110100010101010100010111110100100101001110010100110101010001000001010011000100110001001100010111110100001001001100010011110100001101001011--} 컨트롤러에서 엑셀 파일 생성 및 다운로드 방법 ASP.NET Core 시나리오에서 엑셀 파일을 다운로드하려면 세 가지 핵심 단계가 필요합니다: 워크북 생성, 스트림에 작성, 스트림을 파일 응답으로 반환. 다음 코드는 처음부터XLSX파일을 생성하고 브라우저로 전송하는 완전한 MVC 컨트롤러 액션을 보여줍니다. using IronXL; using Microsoft.AspNetCore.Mvc; public class ReportController : Controller { // Export employee data as a downloadable Excel file public IActionResult DownloadExcel() { // Create a new workbook and worksheet var workbook = WorkBook.Create(ExcelFileFormat.XLSX); var worksheet = workbook.CreateWorkSheet("Employees"); // Add header row with column names worksheet["A1"].Value = "Name"; worksheet["B1"].Value = "Department"; worksheet["C1"].Value = "Salary"; // Populate cells with data values worksheet["A2"].Value = "Alice Torres"; worksheet["B2"].Value = "Engineering"; worksheet["C2"].Value = 95000; worksheet["A3"].Value = "James Park"; worksheet["B3"].Value = "Marketing"; worksheet["C3"].Value = 78000; // Export workbook to a MemoryStream for download var stream = workbook.ToStream(); string filename = "Employees.xlsx"; var content = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; // Return file to the browser with content disposition attachment return File(stream, content, filename); } } using IronXL; using Microsoft.AspNetCore.Mvc; public class ReportController : Controller { // Export employee data as a downloadable Excel file public IActionResult DownloadExcel() { // Create a new workbook and worksheet var workbook = WorkBook.Create(ExcelFileFormat.XLSX); var worksheet = workbook.CreateWorkSheet("Employees"); // Add header row with column names worksheet["A1"].Value = "Name"; worksheet["B1"].Value = "Department"; worksheet["C1"].Value = "Salary"; // Populate cells with data values worksheet["A2"].Value = "Alice Torres"; worksheet["B2"].Value = "Engineering"; worksheet["C2"].Value = 95000; worksheet["A3"].Value = "James Park"; worksheet["B3"].Value = "Marketing"; worksheet["C3"].Value = 78000; // Export workbook to a MemoryStream for download var stream = workbook.ToStream(); string filename = "Employees.xlsx"; var content = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; // Return file to the browser with content disposition attachment return File(stream, content, filename); } } $vbLabelText $csharpLabel 엑셀 파일 출력 WorkBook.Create 메서드는 새로운 엑셀 문서를 생성하고, CreateWorkSheet는 첫 번째 워크시트를 추가합니다. 셀에 값을 채운 후 ToStream 메서드는 전체 워크북을 MemoryStream으로 변환하며, 임시 파일이 디스크에 기록되지 않습니다. 컨트롤러의 File() 반환 메서드는 콘텐츠 배포 헤더를 첨부 파일로 설정하여 브라우저에 파일을 다운로드하도록 지시합니다. 세 번째 매개변수는 사용자 다운로드 대화상자에서 파일 이름으로 표시되는 내용을 제어합니다. 이 public IActionResult 패턴은 .NET Framework 및 ASP.NET Core 프로젝트 모두에서 작동하며, 데이터를 엑셀로 내보내고자 하는 웹 애플리케이션에 최적의 접근법입니다. 데이터베이스 데이터를 다운로드 가능한 스프레드시트로 내보내는 방법 대부분의 실제 시나리오는 하드코딩된 값이 아닌 데이터베이스 테이블에서 데이터를 내보내는 것을 포함합니다. 패턴은 동일하게 유지되며, 데이터를 조회하고, 워크시트를 채우고, 파일을 반환합니다. 여기 데이터베이스에서 레코드를 가져와 엑셀 문서에 기록하는 예제가 있습니다. using IronXL; using Microsoft.AspNetCore.Mvc; public class DataExportController : Controller { // Export database records to an xlsx file for download public IActionResult ExportDatabaseReport() { // Simulate a database query returning order records var orders = new[] { new { OrderId = 1001, Customer = "Acme Corp", Total = 4500.00m }, new { OrderId = 1002, Customer = "Globex Inc", Total = 12300.50m }, new { OrderId = 1003, Customer = "Initech LLC", Total = 890.75m }, }; var workbook = WorkBook.Create(ExcelFileFormat.XLSX); var worksheet = workbook.CreateWorkSheet("Orders"); // Write headers worksheet["A1"].Value = "Order ID"; worksheet["B1"].Value = "Customer"; worksheet["C1"].Value = "Total"; // Write each row of data from the query results for (int i = 0; i < orders.Length; i++) { int row = i + 2; worksheet[$"A{row}"].Value = orders[i].OrderId; worksheet[$"B{row}"].Value = orders[i].Customer; worksheet[$"C{row}"].Value = orders[i].Total; } var stream = workbook.ToStream(); string filename = $"OrderReport-{DateTime.Now:yyyyMMdd}.xlsx"; return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename); } } using IronXL; using Microsoft.AspNetCore.Mvc; public class DataExportController : Controller { // Export database records to an xlsx file for download public IActionResult ExportDatabaseReport() { // Simulate a database query returning order records var orders = new[] { new { OrderId = 1001, Customer = "Acme Corp", Total = 4500.00m }, new { OrderId = 1002, Customer = "Globex Inc", Total = 12300.50m }, new { OrderId = 1003, Customer = "Initech LLC", Total = 890.75m }, }; var workbook = WorkBook.Create(ExcelFileFormat.XLSX); var worksheet = workbook.CreateWorkSheet("Orders"); // Write headers worksheet["A1"].Value = "Order ID"; worksheet["B1"].Value = "Customer"; worksheet["C1"].Value = "Total"; // Write each row of data from the query results for (int i = 0; i < orders.Length; i++) { int row = i + 2; worksheet[$"A{row}"].Value = orders[i].OrderId; worksheet[$"B{row}"].Value = orders[i].Customer; worksheet[$"C{row}"].Value = orders[i].Total; } var stream = workbook.ToStream(); string filename = $"OrderReport-{DateTime.Now:yyyyMMdd}.xlsx"; return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename); } } $vbLabelText $csharpLabel 산출 생산 환경에서는 주문 배열이 Entity Framework Core 쿼리나 Dapper 호출 또는 데이터베이스에 연결된 연결 문자열을 통한 데이터 액세스 레이어에서 제공됩니다. 루프는 결과를 반복하여 워크시트의 올바른 셀에 각 값을 기록합니다. 사용자가 파일을 반복해서 다운로드할 때의 번거로움을 덜어주는 작은 세부사항인 문자열 파일 이름에 날짜 스탬프가 포함되어 있는지 확인하십시오. IronXL의 셀 주소 지정 시스템 (worksheet[$"A{row}"])은 가독성을 유지하며, WorkBook API는 유효한XLSX파일을 내부적으로 구축하는 데 필요한 모든 수고를 처리합니다. 수식, 스타일링, 다중 시트 워크북과 관련된 더 복잡한 시나리오에도 동일한 접근 방식이 깔끔하게 확장됩니다. XLSX대신CSV파일로 데이터를 다운로드하는 방법 가벼운CSV파일이 더 나은 선택인 경우가 있으며, 특히 다른 시스템, 데이터베이스 또는 Excel의 기능이 필요 없는 도구에 데이터를 제공할 때 그렇습니다. IronXL은 형식 간의 전환을 쉽게 만듭니다. using IronXL; using Microsoft.AspNetCore.Mvc; public class CsvController : Controller { // Export data as aCSVfile download public IActionResult ExportCsv() { var workbook = WorkBook.Create(ExcelFileFormat.XLSX); var worksheet = workbook.CreateWorkSheet("Products"); worksheet["A1"].Value = "SKU"; worksheet["B1"].Value = "Product"; worksheet["C1"].Value = "Price"; worksheet["A2"].Value = "WDG-001"; worksheet["B2"].Value = "Widget Pro"; worksheet["C2"].Value = 29.99; // Convert toCSVstream instead of XLSX var stream = workbook.ToCsvStream(); string filename = "Products.csv"; return File(stream, "text/csv", filename); } } using IronXL; using Microsoft.AspNetCore.Mvc; public class CsvController : Controller { // Export data as aCSVfile download public IActionResult ExportCsv() { var workbook = WorkBook.Create(ExcelFileFormat.XLSX); var worksheet = workbook.CreateWorkSheet("Products"); worksheet["A1"].Value = "SKU"; worksheet["B1"].Value = "Product"; worksheet["C1"].Value = "Price"; worksheet["A2"].Value = "WDG-001"; worksheet["B2"].Value = "Widget Pro"; worksheet["C2"].Value = 29.99; // Convert toCSVstream instead of XLSX var stream = workbook.ToCsvStream(); string filename = "Products.csv"; return File(stream, "text/csv", filename); } } $vbLabelText $csharpLabel CSV파일 출력 ToCsvStream 메서드는 첫 번째 워크시트를CSV형식의 MemoryStream으로 내보냅니다.CSV파일은 데이터 교환에 매우 유용하지만, 모든 서식, 수식 및 다중 시트 구조를 제거합니다. 이러한 기능이 필요할 때는 ToStream() 또는 ToXlsxStream()을 통해XLSX파일 형식을 유지하세요. 형식 변환에 대한 자세한 내용은 스프레드시트 변환 가이드를 참조하세요. 업로드를 다른 형식으로 다시 내보내는 방법은? 일반적인 웹 애플리케이션 시나리오에는 사용자가 업로드한 파일을 수락하고 다른 형식으로 내보내는 것이 포함됩니다. 예를 들어,XLS업로드를 XLSX로 변환하거나, 기존 형식으로 저장된 워크북에서CSV파일을 생성하는 것입니다. public IActionResult ConvertUpload(IFormFile upload) { using var memoryStream = new MemoryStream(); upload.CopyTo(memoryStream); memoryStream.Position = 0; // Load uploaded Excel file from the stream var workbook = WorkBook.Load(memoryStream); // Re-export asXLSXregardless of the original file extension or file type var stream = workbook.ToXlsxStream(); string filename = Path.GetFileNameWithoutExtension(upload.FileName) + ".xlsx"; return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename); } public IActionResult ConvertUpload(IFormFile upload) { using var memoryStream = new MemoryStream(); upload.CopyTo(memoryStream); memoryStream.Position = 0; // Load uploaded Excel file from the stream var workbook = WorkBook.Load(memoryStream); // Re-export asXLSXregardless of the original file extension or file type var stream = workbook.ToXlsxStream(); string filename = Path.GetFileNameWithoutExtension(upload.FileName) + ".xlsx"; return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename); } $vbLabelText $csharpLabel 출력: CSV를XLSX형식으로 변환하기 WorkBook.Load 메서드는 MemoryStream을 수락하므로 업로드된 파일을 먼저 디스크에 저장할 필요가 없습니다. 소스가 XLS, XLSX, 또는CSV파일인지 자동 감지하고 적절히 구문 분석합니다. 그 후, ToXlsxStream()은 모든 바이트가 제대로 구조화된 최신XLSX형식의 새 MemoryStream을 생성합니다. 이는 사용자 제출물을 정규화하여 추가 처리나 저장하기 전에 유용합니다. 어떤 파일 형식이 내보내질 수 있나요? IronXL은 데이터를 여러 스프레드시트 및 데이터 교환 형식으로 내보낼 수 있습니다. 아래 표는 사용 가능한 출력 옵션과 그 최적의 사용 사례를 요약한 것입니다. |형식| 파일 확장자 | 스트림 메서드 | 최상의 사용 사례 | |---|---|---|---| |XLSX|.xlsx|ToXlsxStream()| 서식 및 수식이 있는 최신 엑셀 스프레드시트 | |XLS|.xls|ToXlsStream()| 레거시 시스템 호환성 | |CSV|.csv|ToCsvStream()| 데이터베이스 임포트, 데이터 파이프라인, 경량 내보내기 | |XML|.xml|ToXmlStream()| 기업 시스템 통합 | |JSON|.json|SaveAsJson()| 웹 API 응답 및 데이터 교환 | |HTML|.html|ExportToHtml()| 스프레드시트 데이터의 웹 페이지 디스플레이 | 모든 스트림 메서드는 ASP.NET Core의 File() 반환 도우미에 직접 연결되는 MemoryStream을 반환합니다. 바이트 배열 대안(ToByteArray()) 역시 사용할 수 있으며, 예를 들어 바이트[]가 더 편리한 경우, blob 데이터베이스에 저장하거나 이메일 응답 스트림에 첨부할 때 사용합니다. 이 모든 메서드는 IronXL NuGet 패키지를 설치한 즉시 사용할 수 있습니다. 각 내보내기 형식에 대한 전체 안내는 엑셀로 내보내기 문서를 참조하세요. 비즈니스 분석가를 위한XLSX형식으로 파일을 다운로드하거나, 데이터 엔지니어를 위한CSV파일을 내보내거나, 기업 통합을 위한 XML을 생성하는 것이 목표인 경우, IronXL은 코드를 깔끔하게 유지하며 .NET Core와 .NET Framework 애플리케이션에서 출력이 안정적입니다. 다음 프로젝트에서 스프레드시트 내보내기를 배송할 준비가 되셨나요? 무료 체험판 라이센스를 받거나 라이센싱 옵션을 탐색하여 오늘 시작하세요. 단계별 설정 지침은 IronXL 시작 가이드를 참조하세요. 자주 묻는 질문 ASP.NET Core 에서 C#을 사용하여 Excel 파일을 다운로드하는 방법은 무엇인가요? ASP.NET Core 에서 C#을 사용하여 IronXL 활용하면 Excel 파일을 다운로드할 수 있습니다. IronXL 사용하면 MVC 컨트롤러에서 직접 XLSX, CSV, XML 등 다양한 형식으로 데이터를 내보낼 수 있습니다. 이는 MemoryStream과 File() 메서드를 사용하여 효율적으로 관리할 수 있습니다. IronXL 사용하여 Excel 파일을 내보낼 때의 이점은 무엇입니까? IronXL MemoryStream을 효율적으로 관리하고 HTTP 콘텐츠 처리 헤더를 구성하여 Excel 파일 내보내기 프로세스를 간소화합니다. 이를 통해 일관된 브라우저 동작을 보장하고 데이터 손상을 방지하므로 기업 웹 애플리케이션에 이상적입니다. IronXL 어떤 파일 형식으로 데이터를 내보낼 수 있나요? IronXL XLSX, CSV, XML을 포함한 다양한 파일 형식으로 데이터를 내보낼 수 있습니다. 이러한 다재다능함 덕분에 개발자는 다양한 데이터 내보내기 요구 사항을 원활하게 처리할 수 있습니다. IronXL Excel 파일 내보내기 시 발생하는 어떤 기술적 문제를 해결하는 데 도움을 줍니까? IronXL MemoryStream 관리 및 정확한 HTTP 콘텐츠 처리 헤더 구성과 같은 문제를 해결하는 데 도움을 줍니다. 이러한 기능은 내보낸 Excel 파일이 브라우저에서 올바르게 처리되도록 하고 데이터 손상을 방지합니다. IronXL 사용하여 MVC 컨트롤러에서 데이터를 내보낼 수 있습니까? 네, IronXL 사용하면 MVC 컨트롤러에서 데이터를 내보낼 수 있습니다. IronXL은 데이터를 Excel 형식으로 출력하는 간편한 방법을 제공하므로 ASP.NET Core 웹 애플리케이션에 실용적인 선택입니다. IronXL 엑셀 파일 생성 과정을 어떻게 개선합니까? IronXL MemoryStream 및 HTTP 헤더 관리와 같은 복잡한 작업을 자동화하여 프로세스를 개선하고, 개발자가 기술적인 복잡성 대신 핵심 기능에 집중할 수 있도록 합니다. 커티스 차우 지금 바로 엔지니어링 팀과 채팅하세요 기술 문서 작성자 커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다. 커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다. 관련 기사 업데이트됨 3월 1, 2026 IronXL 사용하여 Blazor 에서 Excel 파일을 내보내는 방법 IronXL 사용하여 Blazor Server 애플리케이션에서 데이터를 Excel로 내보내는 방법을 알아보세요. 이 가이드에서는 프로젝트 설정, 서비스 설계, 조건부 서식, 다중 시트 보고서 및 오류 처리에 대한 모든 C# 코드 예제를 다룹니다. 더 읽어보기 업데이트됨 2월 27, 2026 StreamReader 대신 C#에서 Excel 파일을 읽는 방법 StreamReader가 Excel 파일을 읽을 수 없는 이유와 C# .NET 에서 IronXL 사용하여 디스크 또는 메모리 스트림에서 XLSX 및 XLS 통합 문서를 로드하는 방법을 알아보세요. 더 읽어보기 업데이트됨 3월 1, 2026 IronXL 사용하여 C#에서 Excel 파일을 생성하는 방법 IronXL 사용하여 C#으로 Excel 파일을 생성하는 방법을 알아보세요. Office 프로그램에 의존하지 않고 기본적인 스프레드시트 생성, 서식 지정, 수식 작성 및 데이터베이스 통합을 다룹니다. 더 읽어보기 C#을 사용하여 Interop 없이 E...
업데이트됨 3월 1, 2026 IronXL 사용하여 Blazor 에서 Excel 파일을 내보내는 방법 IronXL 사용하여 Blazor Server 애플리케이션에서 데이터를 Excel로 내보내는 방법을 알아보세요. 이 가이드에서는 프로젝트 설정, 서비스 설계, 조건부 서식, 다중 시트 보고서 및 오류 처리에 대한 모든 C# 코드 예제를 다룹니다. 더 읽어보기
업데이트됨 2월 27, 2026 StreamReader 대신 C#에서 Excel 파일을 읽는 방법 StreamReader가 Excel 파일을 읽을 수 없는 이유와 C# .NET 에서 IronXL 사용하여 디스크 또는 메모리 스트림에서 XLSX 및 XLS 통합 문서를 로드하는 방법을 알아보세요. 더 읽어보기
업데이트됨 3월 1, 2026 IronXL 사용하여 C#에서 Excel 파일을 생성하는 방법 IronXL 사용하여 C#으로 Excel 파일을 생성하는 방법을 알아보세요. Office 프로그램에 의존하지 않고 기본적인 스프레드시트 생성, 서식 지정, 수식 작성 및 데이터베이스 통합을 다룹니다. 더 읽어보기