IRONXL 사용하여 IronXL 사용하여 C#에서 데이터 세트를 Excel로 내보내기 | Office 필요 없음 커티스 차우 업데이트됨:3월 1, 2026 다운로드 IronXL NuGet 다운로드 DLL 다운로드 무료 체험 시작하기 LLM용 사본 LLM용 사본 LLM용 마크다운 형식으로 페이지를 복사하세요 ChatGPT에서 열기 ChatGPT에 이 페이지에 대해 문의하세요 제미니에서 열기 제미니에게 이 페이지에 대해 문의하세요 Grok에서 열기 Grok에게 이 페이지에 대해 문의하세요 혼란 속에서 열기 Perplexity에게 이 페이지에 대해 문의하세요 공유하다 페이스북에 공유하기 트위터에 공유하기 LinkedIn에 공유하기 URL 복사 이메일로 기사 보내기 C#에서 DataSet 또는 DataTable을 Excel로 내보내는 것은 구조화된 메모리 내 데이터를 전문적인 스프레드시트 파일로 전환하는 믿을 수 있는 방법을 제공하며, 대상 머신에 Microsoft Office가 설치될 필요가 없습니다. SQL 데이터베이스에서 레코드를 가져오거나, 프로그래밍 방식으로 DataSet을 빌드하거나, 기존 DataGrid와 작업하는 경우, IronXL은 깨끗하고 코드 중심적인 API를 통해 전체 파이프라인을 처리합니다. 이 가이드는 단일 테이블 내보내기에서 다중 시트 워크북, 실시간 데이터베이스 쿼리 결과까지의 모든 주요 시나리오를 .NET 10과 최고 수준의 C# 명령문을 사용하여 다룹니다. IronXL을 한 번 설치하고 몇 줄의 코드를 작성하면 단일 오피스 종속 없이 데이터가 XLSX 파일에 들어갑니다. 아래 섹션은 설치, 기본 패턴, 고급 서식 지정, 데이터베이스 통합에 대해 직접 프로젝트에 복사하여 붙일 수 있도록 다룹니다. Excel 내보내기를 위한 IronXL을 어떻게 설치합니까? 내보내기 코드를 작성하기 전에 NuGet 패키지 관리자를 통해 프로젝트에 IronXL을 추가하세요. 프로젝트 루트에서 터미널을 열고 .NET CLI 명령을 실행하거나 Visual Studio의 패키지 관리자 콘솔에서 Install-Package 명령을 사용하세요. dotnet add package IronXl.Excel # Or in Visual Studio Package Manager Console: # Install-Package IronXl.Excel dotnet add package IronXl.Excel # Or in Visual Studio Package Manager Console: # Install-Package IronXl.Excel SHELL 설치 후 IronXL 네임스페이스를 가져오기 위해 최상위 using 문을 추가합니다: using IronXL; using System.Data; using IronXL; using System.Data; $vbLabelText $csharpLabel IronXL은 .NET 8, .NET 9, .NET 10뿐만 아니라 이전 .NET Framework 버전(4.6.2+)도 지원합니다. 어떠한 머신에도 오피스 설치가 필요하지 않습니다 -- 서버, 데스크톱, 클라우드 모두. 패키지를 설치한 후에는 관리 코드로 XLSX, XLS, CSV 파일을 생성, 읽기, 쓰기 작업을 완전히 수행할 수 있습니다. 자세한 설치 옵션은 IronXL 설치 가이드 및 버전 기록에 대한 NuGet 패키지 페이지를 참조하세요. 단일 DataTable을 다시 Excel 파일로 내보내려면 어떻게 해야 합니까? 가장 일반적인 시나리오는 하나의 DataTable을 단일 워크시트로 내보내는 것입니다. IronXL의 WorkBook 및 WorkSheet 클래스는 Excel 객체 모델에 자연스럽게 매핑됩니다. 워크북을 생성하고, 워크시트를 추가한 후 DataTable의 열과 행을 반복합니다. 다음 예제는 메모리 내에 Employees DataTable을 생성하고 EmployeeData.xlsx에 기록합니다. using IronXL; using System.Data; // Build an in-memory DataTable DataTable dt = new DataTable("Employees"); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Department", typeof(string)); dt.Rows.Add(1, "John Smith", "Engineering"); dt.Rows.Add(2, "Sarah Jones", "Marketing"); dt.Rows.Add(3, "Mike Wilson", "Sales"); // Create a workbook and a named worksheet WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Write column headers in row 0 for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(0, col, dt.Columns[col].ColumnName); } // Write data rows starting at row 1 for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(row + 1, col, dt.Rows[row][col].ToString()); } } workbook.SaveAs("EmployeeData.xlsx"); using IronXL; using System.Data; // Build an in-memory DataTable DataTable dt = new DataTable("Employees"); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Department", typeof(string)); dt.Rows.Add(1, "John Smith", "Engineering"); dt.Rows.Add(2, "Sarah Jones", "Marketing"); dt.Rows.Add(3, "Mike Wilson", "Sales"); // Create a workbook and a named worksheet WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Write column headers in row 0 for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(0, col, dt.Columns[col].ColumnName); } // Write data rows starting at row 1 for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(row + 1, col, dt.Rows[row][col].ToString()); } } workbook.SaveAs("EmployeeData.xlsx"); $vbLabelText $csharpLabel 산출 SetCellValue는 int, double, string, bool을 수용하므로 추가 캐스팅 없이 기본 Excel 셀 유형을 얻을 수 있습니다. 이 루프 패턴은 IronXL이 메모리에 직접 기록하고 SaveAs가 호출될 때만 디스크로 플러시하므로 모든 크기의 테이블에 대해 작동하며 수천 개의 행에서도 효율성을 유지합니다. 읽기 및 쓰기 기법을 넓게 다룬 것은 IronXL C# 튜토리얼에서 이 내보내기 패턴과 함께 파일 작업의 전체 범위를 다루고 있습니다. DataSet을 여러 Excel 워크시트로 내보내려면 어떻게 해야 합니까? DataSet에 제품 및 주문과 같이 여러 관련 테이블이 포함된 경우, 각 DataTable을 하나의 워크북 내의 고유한 워크시트로 매핑할 수 있습니다. 이렇게 하면 수신자가 여러 문서를 열 필요 없이 모든 관련 데이터를 하나의 파일에서 볼 수 있습니다. 아래의 루프는 ds.Tables을 반복하고 테이블당 하나의 시트를 생성합니다. using IronXL; using System.Data; // Build a DataSet with two related tables DataSet ds = new DataSet("CompanyData"); DataTable dtProducts = new DataTable("Products"); dtProducts.Columns.Add("ProductID", typeof(int)); dtProducts.Columns.Add("ProductName", typeof(string)); dtProducts.Columns.Add("Price", typeof(decimal)); dtProducts.Rows.Add(101, "Widget A", 29.99m); dtProducts.Rows.Add(102, "Widget B", 49.99m); ds.Tables.Add(dtProducts); DataTable dtOrders = new DataTable("Orders"); dtOrders.Columns.Add("OrderID", typeof(int)); dtOrders.Columns.Add("Customer", typeof(string)); dtOrders.Columns.Add("Total", typeof(decimal)); dtOrders.Rows.Add(1001, "Acme Corp", 599.90m); dtOrders.Rows.Add(1002, "Tech Inc", 299.95m); ds.Tables.Add(dtOrders); // Create one workbook and iterate each DataTable WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); foreach (DataTable table in ds.Tables) { WorkSheet sheet = workbook.CreateWorkSheet(table.TableName); // Write headers for (int col = 0; col < table.Columns.Count; col++) { sheet.SetCellValue(0, col, table.Columns[col].ColumnName); } // Write rows for (int row = 0; row < table.Rows.Count; row++) { for (int col = 0; col < table.Columns.Count; col++) { sheet.SetCellValue(row + 1, col, table.Rows[row][col].ToString()); } } } workbook.SaveAs("CompanyReport.xlsx"); using IronXL; using System.Data; // Build a DataSet with two related tables DataSet ds = new DataSet("CompanyData"); DataTable dtProducts = new DataTable("Products"); dtProducts.Columns.Add("ProductID", typeof(int)); dtProducts.Columns.Add("ProductName", typeof(string)); dtProducts.Columns.Add("Price", typeof(decimal)); dtProducts.Rows.Add(101, "Widget A", 29.99m); dtProducts.Rows.Add(102, "Widget B", 49.99m); ds.Tables.Add(dtProducts); DataTable dtOrders = new DataTable("Orders"); dtOrders.Columns.Add("OrderID", typeof(int)); dtOrders.Columns.Add("Customer", typeof(string)); dtOrders.Columns.Add("Total", typeof(decimal)); dtOrders.Rows.Add(1001, "Acme Corp", 599.90m); dtOrders.Rows.Add(1002, "Tech Inc", 299.95m); ds.Tables.Add(dtOrders); // Create one workbook and iterate each DataTable WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); foreach (DataTable table in ds.Tables) { WorkSheet sheet = workbook.CreateWorkSheet(table.TableName); // Write headers for (int col = 0; col < table.Columns.Count; col++) { sheet.SetCellValue(0, col, table.Columns[col].ColumnName); } // Write rows for (int row = 0; row < table.Rows.Count; row++) { for (int col = 0; col < table.Columns.Count; col++) { sheet.SetCellValue(row + 1, col, table.Rows[row][col].ToString()); } } } workbook.SaveAs("CompanyReport.xlsx"); $vbLabelText $csharpLabel 산출 각 워크시트는 원본 DataTable의 이름을 따서 명명되어 Excel 내에서의 탐색이 직관적입니다. WorkBook.Create이 메모리에서 워크북을 할당하여 파일을 다시 열지 않고도 루프에서 워크시트를 계속 추가할 수 있습니다 -- IronXL은 디스크에 기록하기 전에 전체 XLSX 구조를 빌드합니다. IronXL WorkBook 문서에는 WorkBook 객체에서 사용 가능한 모든 메서드가 나열되어 있으며, 여기에는 시트 재배열, 암호 보호 및 XLSX 이외의 형식으로 저장하기가 포함됩니다. Excel 내보내기에서 헤더 서식을 추가하는 방법은? 일반 데이터 내보내기는 기능적이지만, 굵은 헤더와 열 너비를 추가하면 비즈니스 환경에서 즉시 사용할 수 있게 됩니다. IronXL은 모든 WorkSheet 범위에 첨부된 Style 개체를 통해 셀 및 범위 스타일을 노출합니다. 아래 코드 스니펫은 데이터 작성 후 헤더 행에 굵은 글꼴 서식을 적용하고 열 크기를 자동 조정합니다. using IronXL; using System.Data; DataTable dt = new DataTable("Sales"); dt.Columns.Add("Region", typeof(string)); dt.Columns.Add("Q1", typeof(decimal)); dt.Columns.Add("Q2", typeof(decimal)); dt.Columns.Add("Q3", typeof(decimal)); dt.Columns.Add("Q4", typeof(decimal)); dt.Rows.Add("아니요rth", 120000m, 135000m, 142000m, 158000m); dt.Rows.Add("South", 98000m, 104000m, 112000m, 121000m); dt.Rows.Add("East", 87000m, 93000m, 99000m, 108000m); dt.Rows.Add("West", 145000m, 152000m, 161000m, 174000m); WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Sales"); // Write and style headers for (int col = 0; col < dt.Columns.Count; col++) { sheet.SetCellValue(0, col, dt.Columns[col].ColumnName); sheet["A1:E1"].Style.Font.Bold = true; sheet["A1:E1"].Style.Font.Height = 12; } // Write data rows for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { sheet.SetCellValue(row + 1, col, dt.Rows[row][col]); } } workbook.SaveAs("SalesReport.xlsx"); using IronXL; using System.Data; DataTable dt = new DataTable("Sales"); dt.Columns.Add("Region", typeof(string)); dt.Columns.Add("Q1", typeof(decimal)); dt.Columns.Add("Q2", typeof(decimal)); dt.Columns.Add("Q3", typeof(decimal)); dt.Columns.Add("Q4", typeof(decimal)); dt.Rows.Add("아니요rth", 120000m, 135000m, 142000m, 158000m); dt.Rows.Add("South", 98000m, 104000m, 112000m, 121000m); dt.Rows.Add("East", 87000m, 93000m, 99000m, 108000m); dt.Rows.Add("West", 145000m, 152000m, 161000m, 174000m); WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Sales"); // Write and style headers for (int col = 0; col < dt.Columns.Count; col++) { sheet.SetCellValue(0, col, dt.Columns[col].ColumnName); sheet["A1:E1"].Style.Font.Bold = true; sheet["A1:E1"].Style.Font.Height = 12; } // Write data rows for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { sheet.SetCellValue(row + 1, col, dt.Rows[row][col]); } } workbook.SaveAs("SalesReport.xlsx"); $vbLabelText $csharpLabel Style.Font.Bold 속성은 단일 문에서 전체 헤더 범위에 적용됩니다. IronXL은 백그라운드 색상 (Style.BackgroundColor), 테두리 스타일 (Style.Border), 숫자 형식 (Style.NumberFormat.FormatCode), 수평 정렬 (Style.HorizontalAlignment)도 지원합니다. 전체 스타일 레퍼런스는 IronXL 셀 서식 가이드를 참조하세요. 데이터베이스 쿼리 결과를 Excel로 내보내는 방법은? SQL 데이터베이스에 연결하고 결과를 직접 Excel로 내보내는 것은 주요 실제 사용 사례를 다루며 -- 정기 보고서, 데이터 스냅샷, 관리 내보내기 등을 포함합니다. 이 접근 방식은 SqlDataAdapter을 사용하여 DataSet을 채우고, 결과 DataTable을 IronXL 워크시트로 매핑합니다. using IronXL; using System.Data; using System.Data.SqlClient; string connectionString = "Server=localhost;Database=SalesDB;Integrated Security=True;"; string query = "SELECT CustomerID, CompanyName, ContactName, Country FROM Customers"; // Fill DataSet from SQL query DataSet ds = new DataSet(); using (SqlConnection connection = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter(query, connection); adapter.Fill(ds, "Customers"); } DataTable dt = ds.Tables["Customers"]!; // Create workbook and export WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("CustomerData"); // Bold header row for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(0, col, dt.Columns[col].ColumnName); } worksheet["A1:D1"].Style.Font.Bold = true; // Write rows, handling DBNull values safely for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { object cellValue = dt.Rows[row][col]; worksheet.SetCellValue(row + 1, col, cellValue == DBNull.Value ? "" : cellValue.ToString()!); } } workbook.SaveAs("CustomerExport.xlsx"); Console.WriteLine("Export complete."); using IronXL; using System.Data; using System.Data.SqlClient; string connectionString = "Server=localhost;Database=SalesDB;Integrated Security=True;"; string query = "SELECT CustomerID, CompanyName, ContactName, Country FROM Customers"; // Fill DataSet from SQL query DataSet ds = new DataSet(); using (SqlConnection connection = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter(query, connection); adapter.Fill(ds, "Customers"); } DataTable dt = ds.Tables["Customers"]!; // Create workbook and export WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("CustomerData"); // Bold header row for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(0, col, dt.Columns[col].ColumnName); } worksheet["A1:D1"].Style.Font.Bold = true; // Write rows, handling DBNull values safely for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { object cellValue = dt.Rows[row][col]; worksheet.SetCellValue(row + 1, col, cellValue == DBNull.Value ? "" : cellValue.ToString()!); } } workbook.SaveAs("CustomerExport.xlsx"); Console.WriteLine("Export complete."); $vbLabelText $csharpLabel 데이터베이스 내보내기를 위한 주요 포인트 null 가드(cellValue == DBNull.Value ? "" : cellValue.ToString()) prevents exceptions when the database returns NULL 값 -- 선택적 열에서 일반적으로 발생합니다. 헤더 행에 굵은 서식을 사용하면 보고서 수신자가 헤더를 데이터와 즉시 구별할 수 있습니다. Excel에서 C# 객체로 데이터를 다시 읽어오는 방법에 대한 추가 패턴은 IronXL DataTable 내보내기 튜토리얼에서 이러한 워크플로를 역으로 수행하는 방법을 보여줍니다. IronXL을 다른 Excel 내보내기 접근 방식과 어떻게 비교합니까? 라이브러리를 선택하기 전에, 주요 옵션이 DataSet 내보내기 시나리오에서 가장 중요한 영역에서 서로 어떻게 대조되는지 이해하는 것이 도움이 됩니다. .NET DataSet 시나리오에 대한 Excel 내보내기 라이브러리 비교 접근 방식 Office 필수 XLSX 지원 스타일링 API 다중 시트 성능 (대량 데이터) IronXL 아니요 예 전체 예 높음 Microsoft Office Interop 예 예 전체 예 낮음 EPPlus 아니요 예 부분적 예 높음 클로즈드XML 아니요 예 부분적 예 중간 CSV (수동) 아니요 아니요 없음 아니요 매우 높음 Microsoft Office Interop은 Office가 설치된 Windows 머신에서만 작동하며, 이는 서버 배포 및 클라우드 기능에서는 제외됩니다. IronXL, EPPlus, 및 클로즈드XML은 모두 서버 사이드 생성을 지원하며 -- 주요 차별점은 스타일링 API의 폭과 라이센스 모델입니다. IronXL의 라이센스는 상업적 사용을 포함하며 단일 패키지에서 모든 .NET 타겟 프레임워크를 포함합니다. 서드파티 벤치마크 및 비교를 위해, Microsoft의 Excel 파일 형식 문서 및 EPPlus 프로젝트 페이지는 프로젝트에 적합한 선택을 하기 위한 추가적인 컨텍스트를 제공합니다. 메모리 문제 없이 대량의 DataSets를 어떻게 처리합니까? 수만 행의 데이터 테이블을 내보낼 때 메모리 사용량을 예측 가능하게 유지하는 것이 중요합니다. 아래의 패턴은 DataTable 전체 결과 집합을 먼저 로드하는 대신 IDataReader에서 데이터를 스트리밍 합니다. 이는 리더 버퍼와 DataTable을 동시에 보유하는 이중 메모리 비용을 피할 수 있습니다. using IronXL; using System.Data; using System.Data.SqlClient; string connectionString = "Server=localhost;Database=InventoryDB;Integrated Security=True;"; string query = "SELECT ProductID, SKU, Description, StockLevel, UnitCost FROM Products"; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Inventory"); using SqlConnection conn = new SqlConnection(connectionString); conn.Open(); using SqlCommand cmd = new SqlCommand(query, conn); using SqlDataReader reader = cmd.ExecuteReader(); // Write schema-derived headers for (int col = 0; col < reader.FieldCount; col++) { sheet.SetCellValue(0, col, reader.GetName(col)); } // Stream rows directly into IronXL without buffering a DataTable int excelRow = 1; while (reader.Read()) { for (int col = 0; col < reader.FieldCount; col++) { sheet.SetCellValue(excelRow, col, reader.IsDBNull(col) ? "" : reader.GetValue(col).ToString()!); } excelRow++; } workbook.SaveAs("InventoryExport.xlsx"); Console.WriteLine($"Exported {excelRow - 1} rows."); using IronXL; using System.Data; using System.Data.SqlClient; string connectionString = "Server=localhost;Database=InventoryDB;Integrated Security=True;"; string query = "SELECT ProductID, SKU, Description, StockLevel, UnitCost FROM Products"; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Inventory"); using SqlConnection conn = new SqlConnection(connectionString); conn.Open(); using SqlCommand cmd = new SqlCommand(query, conn); using SqlDataReader reader = cmd.ExecuteReader(); // Write schema-derived headers for (int col = 0; col < reader.FieldCount; col++) { sheet.SetCellValue(0, col, reader.GetName(col)); } // Stream rows directly into IronXL without buffering a DataTable int excelRow = 1; while (reader.Read()) { for (int col = 0; col < reader.FieldCount; col++) { sheet.SetCellValue(excelRow, col, reader.IsDBNull(col) ? "" : reader.GetValue(col).ToString()!); } excelRow++; } workbook.SaveAs("InventoryExport.xlsx"); Console.WriteLine($"Exported {excelRow - 1} rows."); $vbLabelText $csharpLabel 이 패턴은 결과 집합이 5만 행을 초과할 가능성이 있거나 메모리 제한 서비스 내에서 실행될 때 권장됩니다. IronXL 성능 문서에서는 대량 내보내기를 위한 추가 메모리 및 처리량 조정 옵션에 대해 설명합니다. 매우 큰 내보내기를 위한 CSV로 일괄 저장 5십만 행을 초과하는 내보내기를 위해 메모리가 매우 부족할 때, 여러 워크북에 출력을 분할하거나 대신 CSV 형식으로 내보내기를 고려하세요: using IronXL; // IronXL can save any workbook as CSV workbook.SaveAs("LargeExport.csv"); using IronXL; // IronXL can save any workbook as CSV workbook.SaveAs("LargeExport.csv"); $vbLabelText $csharpLabel CSV는 포맷과 다중 시트 지원을 잃지만, 원시 구분 데이터를 소비하는 하향식 ETL 프로세스를 위해 여전히 유효합니다. Excel 파일을 다른 형식 및 위치에 저장하는 방법은? IronXL은 파일 경로, MemoryStream, byte[]에 저장하는 것을 지원하므로 Excel을 다운로드 응답으로 반환하는 ASP.NET 응용 프로그램에 중요합니다. using IronXL; using System.IO; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Report"); sheet.SetCellValue(0, 0, "Generated Report"); // Save to file path workbook.SaveAs("Report.xlsx"); // Save as XLS (legacy format) workbook.SaveAs("Report.xls"); // Save to MemoryStream for HTTP response using MemoryStream ms = new MemoryStream(); workbook.SaveAs(ms); byte[] fileBytes = ms.ToArray(); // fileBytes can be returned from an ASP.NET controller action using IronXL; using System.IO; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Report"); sheet.SetCellValue(0, 0, "Generated Report"); // Save to file path workbook.SaveAs("Report.xlsx"); // Save as XLS (legacy format) workbook.SaveAs("Report.xls"); // Save to MemoryStream for HTTP response using MemoryStream ms = new MemoryStream(); workbook.SaveAs(ms); byte[] fileBytes = ms.ToArray(); // fileBytes can be returned from an ASP.NET controller action $vbLabelText $csharpLabel ASP.NET Core의 경우, 컨트롤러 액션에서 File(fileBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx")을 반환하여 브라우저 다운로드를 트리거하세요. IronXL ASP.NET Excel 가이드는 전체 컨트롤러 통합 패턴을 보여줍니다. 다른 .NET Excel 라이브러리에 대한 대안으로, Open XML SDK는 많은 라이브러리가 기반으로하는 오픈 소스 기초입니다. 지원되는 출력 형식 IronXL은 다음 형식으로 추가 종속성 없이 저장합니다: XLSX -- OpenXML 형식, Excel 2007 이상과 호환 XLS -- 레거시 바이너리 형식, Excel 97-2003과 호환 CSV -- 쉼표로 구분된 값, 보편적으로 지원 TSV -- 탭으로 구분된 값 JSON -- 구조화된 데이터 내보내기 파일 경로의 확장자를 변경하거나 ExcelFileFormat 열거형 값을 수용하는 오버로드된 메서드를 사용하여 형식을 전환하세요. 내보낸 엑셀 파일이 올바른지 검증하는 방법은 무엇입니까? 내보낸 후, IronXL을 사용하여 파일을 다시 읽어 행 수를 확인하거나 값들을 점검하거나 테스트 프로젝트에서 자동화를 실행할 수 있습니다: using IronXL; WorkBook loaded = WorkBook.Load("EmployeeData.xlsx"); WorkSheet sheet = loaded.WorkSheets[0]; // Verify row count (header row + data rows) int totalRows = sheet.Rows.Count(); Console.WriteLine($"Rows in file: {totalRows}"); // Spot-check specific cell values string header = sheet["A1"].StringValue; string firstEmployee = sheet["A2"].StringValue; Console.WriteLine($"Header: {header}, First row: {firstEmployee}"); using IronXL; WorkBook loaded = WorkBook.Load("EmployeeData.xlsx"); WorkSheet sheet = loaded.WorkSheets[0]; // Verify row count (header row + data rows) int totalRows = sheet.Rows.Count(); Console.WriteLine($"Rows in file: {totalRows}"); // Spot-check specific cell values string header = sheet["A1"].StringValue; string firstEmployee = sheet["A2"].StringValue; Console.WriteLine($"Header: {header}, First row: {firstEmployee}"); $vbLabelText $csharpLabel 이 검증 패턴은 내보내기의 정확성을 확인해야 하는 통합 테스트 스위트에서 특히 유용하며, 외부 시스템에 파일을 전송하기 전에 필수입니다. IronXL 읽기 튜토리얼는 파일을 로드한 후 사용할 수 있는 전체 읽기 작업 범위를 보여줍니다. .NET에서의 DataSet 및 DataTable 패턴에 대한 추가 독서는 Microsoft DataSet 문서가 ADO.NET 객체 모델을 깊이 있게 다룹니다. 다음 단계는 무엇입니까? C#에서 주요 DataSet-Excel 내보내기 시나리오를 처리할 수 있는 작동 패턴을 갖추었습니다 -- 하나의 DataTable부터 다중 시트 작업, 데이터베이스 기반의 내보내기, 형식화된 헤더, 대용량 데이터 스트리밍까지. 목표에 따라 다음 단계로 나아가는 방법: IronXL 무료 체험 -- 무료 체험 라이선스로 시작하고 본인의 데이터에 대해 위의 예제를 실행한 후 제품 사용을 고려하십시오. 전체 API 레퍼런스 읽기 -- IronXL 객체 레퍼런스는 WorkBook, WorkSheet, 셀 범위의 모든 메소드를 다룹니다. 관련 내보내기 튜토리얼 탐색 -- C# DataTable to Excel 가이드는 Excel을 다시 DataTable 객체로 읽는 반대의 워크플로우를 다룹니다. 형식 옵션 검토 -- IronXL 셀 형식 문서는 숫자 형식, 테두리, 배경색, 정렬 옵션을 보여줍니다. 라이센스 확인 -- 프로덕션 배포를 위해 IronXL 라이센스 페이지를 참조하여 Developer, Organization, 및 Royalty-Free 옵션 중 선택하십시오. 다른 Iron Software 도구와 비교 -- 프로젝트에 PDF 생성 또는 OCR이 필요하면 Iron Software 제품 스위트로 여러 라이브러리를 번들링하여 할인된 가격으로 사용할 수 있습니다. 여기서 다룬 패턴을 기반으로 예약 작업 자동화, ASP.NET Core 다운로드 엔드포인트, 완전 관리형 C#으로 이루어진 멀티 포맷 출력 파이프라인을 추가할 수 있습니다 -- Office, COM, 혹은 NuGet 패키지 외의 런타임 종속성 없음. 자주 묻는 질문 C#에서 데이터셋을 엑셀로 내보내는 방법은 무엇인가요? IronXL 라이브러리를 사용하면 C#에서 DataSet을 Excel로 내보낼 수 있습니다. 이 라이브러리는 Microsoft Office 없이도 Excel 파일을 생성, 편집 및 조작할 수 있는 코드 우선 API를 제공합니다. IronXL 사용하려면 Microsoft Office가 설치되어 있어야 하나요? 아니요, IronXL Excel 파일을 내보내거나 조작하기 위해 컴퓨터에 Microsoft Office가 설치되어 있을 필요가 없습니다. IronXL 사용하여 어떤 유형의 데이터를 내보낼 수 있습니까? IronXL 사용하면 DataTables 및 DataSets와 같은 구조화된 데이터는 물론 SqlDataReader 및 기타 ADO .NET 소스의 데이터도 Excel 파일로 내보낼 수 있습니다. IronXL 엑셀 파일 생성 및 편집 기능을 지원합니까? 예, IronXL C#을 사용하여 Excel 파일을 프로그래밍 방식으로 생성, 편집 및 조작하는 기능을 제공합니다. IronXL 서버 측 및 클라우드 애플리케이션에 적합한가요? 네, IronXL Office 설치 없이 Excel 파일을 생성해야 하는 서버 측 애플리케이션 및 클라우드 기능에 이상적입니다. IronXL 사용하여 데이터 세트를 내보낼 때의 이점은 무엇입니까? IronXL Microsoft Office와 같은 외부 종속성 없이 Excel 파일 생성 및 조작을 처리하며, XLSX, XLS 및 CSV 형식을 지원하고 모든 .NET 대상 프레임워크에서 작동합니다. IronXL ASP.NET Core 에서 사용하여 Excel 다운로드를 반환할 수 있습니까? 예, IronXL 통합 문서를 MemoryStream에 저장할 수 있으며, 생성된 바이트 배열은 ASP.NET Core 컨트롤러 액션에서 파일 다운로드로 반환될 수 있습니다. IronXL 대규모 데이터셋을 지원합니까? 네, IronXL 전체 DataTable을 버퍼링하지 않고 SqlDataReader에서 데이터를 직접 스트리밍할 수 있으므로 대규모 결과 집합에 대한 메모리 사용량을 예측 가능하게 유지할 수 있습니다. IronXL 어떤 Excel 파일 형식을 지원하나요? IronXL 추가적인 종속성 없이 XLSX, XLS, CSV, TSV 및 JSON 형식으로 저장을 지원합니다. 엑셀로 내보낼 때 굵은 글씨체 제목과 같은 서식을 적용할 수 있나요? 네, IronXL 셀 범위에 대해 굵은 글꼴, 배경색, 테두리, 숫자 서식 및 정렬을 위한 스타일 API를 제공합니다. 커티스 차우 지금 바로 엔지니어링 팀과 채팅하세요 기술 문서 작성자 커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다. 커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다. 관련 기사 업데이트됨 3월 1, 2026 .NET C#에서 Excel 파일 다운로드: XLSX, CSV 등 다양한 형식으로 데이터 내보내기 ASP.NET Core 에서 C# 및 IronXL 사용하여 Excel 파일을 다운로드하는 방법을 설명합니다. MVC 컨트롤러에서 MemoryStream 및 File() 반환 값을 사용하여 데이터를 XLSX, CSV 및 XML 형식으로 내보낼 수 있습니다. 코드 예제가 포함되어 있습니다. 더 읽어보기 업데이트됨 3월 1, 2026 IronXL 사용하여 Blazor 에서 Excel 파일을 내보내는 방법 IronXL 사용하여 Blazor Server 애플리케이션에서 데이터를 Excel로 내보내는 방법을 알아보세요. 이 가이드에서는 프로젝트 설정, 서비스 설계, 조건부 서식, 다중 시트 보고서 및 오류 처리에 대한 모든 C# 코드 예제를 다룹니다. 더 읽어보기 업데이트됨 2월 27, 2026 StreamReader 대신 C#에서 Excel 파일을 읽는 방법 StreamReader가 Excel 파일을 읽을 수 없는 이유와 C# .NET 에서 IronXL 사용하여 디스크 또는 메모리 스트림에서 XLSX 및 XLS 통합 문서를 로드하는 방법을 알아보세요. 더 읽어보기 C#에서 GridView를 서식과 함께 Excel로 내보내는 방법Interop과 IronXL 을 사용하여 ...
업데이트됨 3월 1, 2026 .NET C#에서 Excel 파일 다운로드: XLSX, CSV 등 다양한 형식으로 데이터 내보내기 ASP.NET Core 에서 C# 및 IronXL 사용하여 Excel 파일을 다운로드하는 방법을 설명합니다. MVC 컨트롤러에서 MemoryStream 및 File() 반환 값을 사용하여 데이터를 XLSX, CSV 및 XML 형식으로 내보낼 수 있습니다. 코드 예제가 포함되어 있습니다. 더 읽어보기
업데이트됨 3월 1, 2026 IronXL 사용하여 Blazor 에서 Excel 파일을 내보내는 방법 IronXL 사용하여 Blazor Server 애플리케이션에서 데이터를 Excel로 내보내는 방법을 알아보세요. 이 가이드에서는 프로젝트 설정, 서비스 설계, 조건부 서식, 다중 시트 보고서 및 오류 처리에 대한 모든 C# 코드 예제를 다룹니다. 더 읽어보기
업데이트됨 2월 27, 2026 StreamReader 대신 C#에서 Excel 파일을 읽는 방법 StreamReader가 Excel 파일을 읽을 수 없는 이유와 C# .NET 에서 IronXL 사용하여 디스크 또는 메모리 스트림에서 XLSX 및 XLS 통합 문서를 로드하는 방법을 알아보세요. 더 읽어보기