IRONXL 사용하여 IronXL 사용하여 C#에서 Excel 파일을 생성하는 방법 커티스 차우 업데이트됨:1월 5, 2026 다운로드 IronXL NuGet 다운로드 DLL 다운로드 무료 체험 시작하기 LLM용 사본 LLM용 사본 LLM용 마크다운 형식으로 페이지를 복사하세요 ChatGPT에서 열기 ChatGPT에 이 페이지에 대해 문의하세요 제미니에서 열기 제미니에게 이 페이지에 대해 문의하세요 Grok에서 열기 Grok에게 이 페이지에 대해 문의하세요 혼란 속에서 열기 Perplexity에게 이 페이지에 대해 문의하세요 공유하다 페이스북에 공유하기 트위터에 공유하기 LinkedIn에 공유하기 URL 복사 이메일로 기사 보내기 전통적으로 C# 또는 Visual Basic에서 프로그래밍 방식으로 Excel 워크시트 파일을 생성하려면 Microsoft Office 설치나 복잡한 COM Interop이 필요했습니다. IronXL은 이 모든 것을 완전히 바꿔줌으로써, Office 의존성 없이 Excel 애플리케이션 파일을 생성할 수 있는 간단한 API를 제공합니다. 이 튜토리얼은 기본 스프레드시트 생성에서 고급 포맷팅 및 데이터베이스 통합까지 C#에서 IronXL을 사용하여 Excel 파일을 구축하는 방법을 안내합니다. 보고서를 생성하거나 데이터를 내보내기(XLS 파일 또는 XLSX 파일), 스프레드시트 생성을 자동화하든, .NET 애플리케이션에서 Excel 작업에 필요한 필수 기술을 배울 수 있습니다. Microsoft Office 없이 Excel 워크시트 파일을 생성하는 이유는 무엇인가요? Office 종속 없이 Excel 생성 기능을 개발하면 중요한 배포 문제를 해결합니다. 서버 환경은 라이센스 비용과 리소스 부담으로 인해 Microsoft Office를 거의 설치하지 않습니다. 각 Office 설치는 상당한 디스크 공간 및 메모리를 요구하여 클라우드 배포 또는 컨테이너화된 애플리케이션에 비현실적입니다. IronXL은 독립적으로 운영하여 이러한 제약을 제거합니다. C# Excel 파일 생성은 Windows, Linux, macOS, Docker 컨테이너 또는 Azure App Services에서 수정 없이 실행됩니다. 이 크로스-플랫폼 호환성은 한 번 작성하고 어디서나 배포할 수 있음을 의미하며, .NET Framework, .NET Core 또는 .NET 8/9 애플리케이션을 대상으로 할 수 있습니다. COM Interop 오버헤드 없이 성능이 크게 향상됩니다. 전통적인 오피스 자동화는 각 작업마다 별도의 프로세스 인스턴스를 생성하여 메모리와 CPU 리소스를 소비합니다. IronXL은 모든 것을 애플리케이션의 프로세스 공간 내에서 메모리 내에서 처리하여 프로그램적으로 Excel 파일을 생성할 때 빠른 실행과 낮은 리소스 소비를 제공합니다. IronXL은 단일 NuGet 패키지로 제공되므로 배포가 간단해집니다. 등록 항목이나 COM 등록, 유지 관리할 Office 서비스 팩 없이. 연속적인 통합 파이프라인이 원활하게 작동하며, Docker 컨테이너가 경량을 유지합니다. 이 단순한 접근 방식으로 인해 IronXL은 개발자 포럼에서 전문직들이 Excel 자동화 경험을 공유하는 것을 볼 때 인기 있는 선택이 되었습니다. 몇몇 개발자들은 여전히 Office Open XML 파일 구조와 직접 작업하기 위해 Microsoft의 Open XML 생산성 도구를 탐색하고 있습니다. 그러나, 그 접근 방식은 XML 스키마에 대한 자세한 지식과 Open XML SDK 설치를 필요로 하여 더 많은 수작업을 필요로 합니다. IronXL은 이러한 복잡성을 추상화하여 Excel을 프로그래밍 방식으로 다루는 더 빠른 경로를 제공합니다. 개발 중인 C# 프로젝트에 IronXL을 설치하는 방법은? IronXL 설치는 솔루션 탐색기의 NuGet 패키지 관리자를 통해 몇 초 안에 끝납니다. Visual Studio에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 'NuGet 패키지 관리'를 선택하십시오. 'IronXl.Excel'을 검색하고 설치를 클릭하십시오. 이 패키지는 C#에서 Excel 파일을 생성하는 데 필요한 모든 종속성을 자동으로 포함합니다. 대안으로 패키지 관리자 콘솔을 사용하십시오: Install-Package IronXl.Excel 최신 C# 프로젝트로 작업하는 .NET CLI 사용자에게: dotnet add package IronXl.Excel dotnet add package IronXl.Excel SHELL 프로그래밍 방식으로 Excel 파일을 생성하기 위한 간단한 테스트로 설치를 확인하세요: using IronXL; // Create a new Excel workbook var workbook = WorkBook.Create(); Console.WriteLine("IronXL installed successfully!"); using IronXL; // Create a new Excel workbook var workbook = WorkBook.Create(); Console.WriteLine("IronXL installed successfully!"); $vbLabelText $csharpLabel 이 코드는 메모리 내에서 워크북 객체를 생성합니다. 오류 없이 실행되었다면 IronXL을 사용할 준비가 된 것입니다. 이 라이브러리는 모든 현대 .NET 버전을 지원하여 기존 프로젝트와의 호환성을 보장합니다. 자세한 설치 가이드와 문제 해결은 공식 문서를 참조하세요. 시작할 준비 되셨나요? 지금 IronXL을 다운로드하고 몇 분 만에 Excel 파일 생성을 시작하세요. 산출 첫 번째 Excel 파일을 만드는 방법은? IronXL로 Excel 파일을 만드는 것은 모든 Excel 작업의 관문인 WorkBook 클래스로 시작합니다. 이 라이브러리는 현대 XLSX 및 레거시 XLS 형식을 모두 지원하여 C#에서 Excel 파일을 생성할 때 다양한 요구 사항에 대한 유연성을 제공합니다. using IronXL; // Create a new workbook (XLSX format by default) WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Add metadata workbook.Metadata.Title = "Monthly Sales Report"; workbook.Metadata.Author = "Sales Department"; workbook.Metadata.Comments = "Generated using IronXL"; // Create a worksheet WorkSheet worksheet = workbook.CreateWorkSheet("January Sales"); // Add some basic data worksheet["A1"].Value = "Date"; worksheet["B1"].Value = "Product"; worksheet["C1"].Value = "Quantity"; worksheet["D1"].Value = "Revenue"; // Add data rows worksheet["A2"].Value = new DateTime(2024, 1, 15); worksheet["B2"].Value = "Widget Pro"; worksheet["C2"].Value = 100; worksheet["D2"].Value = 2500.00; // Save the workbook workbook.SaveAs("FirstExcelFile.xlsx"); using IronXL; // Create a new workbook (XLSX format by default) WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Add metadata workbook.Metadata.Title = "Monthly Sales Report"; workbook.Metadata.Author = "Sales Department"; workbook.Metadata.Comments = "Generated using IronXL"; // Create a worksheet WorkSheet worksheet = workbook.CreateWorkSheet("January Sales"); // Add some basic data worksheet["A1"].Value = "Date"; worksheet["B1"].Value = "Product"; worksheet["C1"].Value = "Quantity"; worksheet["D1"].Value = "Revenue"; // Add data rows worksheet["A2"].Value = new DateTime(2024, 1, 15); worksheet["B2"].Value = "Widget Pro"; worksheet["C2"].Value = 100; worksheet["D2"].Value = 2500.00; // Save the workbook workbook.SaveAs("FirstExcelFile.xlsx"); $vbLabelText $csharpLabel 이 코드는 Excel 파일 생성의 여러 주요 개념을 보여줍니다. WorkBook.Create() 메서드는 메모리상에 새 Excel 파일을 초기화합니다. ExcelFileFormat 열거형을 사용하여 형식을 지정하세요 - 최신 Excel 호환성을 위해 XLSX를 선택하거나, 기존 지원을 위해 XLS를 선택하세요. Metadata 속성을 사용하여, Excel의 파일 속성에 나타나는 문서 정보를 삽입할 수 있으며, Microsoft의 문서 속성 표준을 따릅니다. CreateWorkSheet() 메서드는 지정된 이름으로 새 시트를 추가합니다. Excel의 익숙한 셀 표기법(A1, B1 등)은 값 설정을 직관적으로 만듭니다. IronXL은 명시적 형변환 없이 날짜, 숫자, 텍스트를 인식하여 데이터 타입 변환을 자동으로 처리합니다. SaveAs() 메서드는 완전한 Excel 파일을 디스크에 씁니다. 추가 워크시트 작업은 워크시트 관리 튜토리얼을 탐색하세요. 산출 Excel 셀에 데이터를 쓰는 방법은? IronXL은 단일 셀 할당부터 대량 범위 작업에 이르기까지 여러 가지 Excel 셀 채우기 방법을 제공합니다. 이러한 방법을 이해하면 데이터 시나리오에 가장 효율적인 접근 방식을 선택하는 데 도움이 됩니다. WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Create a worksheet WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Individual cell assignment worksheet["A1"].Value = "Employee Name"; worksheet["A2"].Value = "John Smith"; worksheet["A3"].Value = "Jane Doe"; // Range assignment for multiple cells worksheet["B1:B3"].Value = "Active"; // Using numeric indices (0-based) worksheet.SetCellValue(0, 2, "Department"); // C1 worksheet.SetCellValue(1, 2, "Sales"); // C2 worksheet.SetCellValue(2, 2, "Marketing"); // C3 // Array-based population string[] headers = { "ID", "Name", "Email", "Phone" }; for (int i = 0; i < headers.Length; i++) { worksheet.SetCellValue(0, i, headers[i]); } // Working with different data types worksheet["E1"].Value = "Salary"; worksheet["E2"].Value = 75000.50m; // Decimal for currency worksheet["E3"].Value = 82000.75m; worksheet["F1"].Value = "Start Date"; worksheet["F2"].Value = new DateTime(2020, 3, 15); worksheet["F3"].Value = new DateTime(2019, 7, 1); worksheet["G1"].Value = "Full Time"; worksheet["G2"].Value = true; // Boolean worksheet["G3"].Value = true; workbook.SaveAs("FirstExcelFile.xlsx"); WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Create a worksheet WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Individual cell assignment worksheet["A1"].Value = "Employee Name"; worksheet["A2"].Value = "John Smith"; worksheet["A3"].Value = "Jane Doe"; // Range assignment for multiple cells worksheet["B1:B3"].Value = "Active"; // Using numeric indices (0-based) worksheet.SetCellValue(0, 2, "Department"); // C1 worksheet.SetCellValue(1, 2, "Sales"); // C2 worksheet.SetCellValue(2, 2, "Marketing"); // C3 // Array-based population string[] headers = { "ID", "Name", "Email", "Phone" }; for (int i = 0; i < headers.Length; i++) { worksheet.SetCellValue(0, i, headers[i]); } // Working with different data types worksheet["E1"].Value = "Salary"; worksheet["E2"].Value = 75000.50m; // Decimal for currency worksheet["E3"].Value = 82000.75m; worksheet["F1"].Value = "Start Date"; worksheet["F2"].Value = new DateTime(2020, 3, 15); worksheet["F3"].Value = new DateTime(2019, 7, 1); worksheet["G1"].Value = "Full Time"; worksheet["G2"].Value = true; // Boolean worksheet["G3"].Value = true; workbook.SaveAs("FirstExcelFile.xlsx"); $vbLabelText $csharpLabel 코드는 IronXL의 유연한 셀 주소 지정을 보여줍니다. 문자열 표기법("A1")은 Excel 사용자에게 자연스럽게 느껴지며, 수치 인덱스는 루프 및 동적 생성에 프로그래밍적 제어를 제공합니다. 범위 할당("B1:B3")은 여러 셀을 같은 값으로 효율적으로 설정하며, 열 초기화나 기본 값 적용에 적합합니다. IronXL은 서로 다른 데이터 형식을 지능적으로 처리합니다. 소수는 금융 데이터를 위해 정확성을 유지하며, DateTime 객체는 Excel 날짜로 올바르게 포맷되고, 부울은 TRUE/FALSE로 나타납니다. 이 자동 변환은 수동 형식화 코드를 제거하면서 데이터 무결성을 보장합니다. 산출 더 큰 데이터셋을 다룰 때는 다음 패턴을 고려하십시오: // Populate from a data source var employees = GetEmployeeData(); // Your data source for (int row = 0; row < employees.Count; row++) { worksheet[$"A{row + 2}"].Value = employees[row].Id; worksheet[$"B{row + 2}"].Value = employees[row].Name; worksheet[$"C{row + 2}"].Value = employees[row].Department; worksheet[$"D{row + 2}"].Value = employees[row].Salary; } // Populate from a data source var employees = GetEmployeeData(); // Your data source for (int row = 0; row < employees.Count; row++) { worksheet[$"A{row + 2}"].Value = employees[row].Id; worksheet[$"B{row + 2}"].Value = employees[row].Name; worksheet[$"C{row + 2}"].Value = employees[row].Department; worksheet[$"D{row + 2}"].Value = employees[row].Salary; } $vbLabelText $csharpLabel 이 접근 방식은 데이터 컬렉션을 순회하여 각 속성을 해당 열에 매핑합니다. 문자열 보간($"A{row + 2}")을 통해 셀 주소가 동적으로 생성되며, 헤더를 보존하기 위해 2행부터 시작합니다. 전문적인 포맷을 적용하는 방법은? 전문적인 Excel 파일은 단순한 원시 데이터 그 이상이 필요합니다. IronXL의 스타일링 API는 포맷, 색상, 시각적 계층 구조를 통해 단순한 스프레드시트를 깔끔한 비즈니스 문서로 변환합니다. C#에서 Excel 파일을 생성할 때에 말입니다. using IronXL; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Create a worksheet WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Header formatting var headerRange = worksheet["A1:D1"]; headerRange.Style.Font.Bold = true; headerRange.Style.Font.Height = 12; headerRange.Style.SetBackgroundColor("#4472C4"); headerRange.Style.Font.Color = "#FFFFFF"; // Column width adjustment worksheet.AutoSizeColumn(0); // Auto-fit column A worksheet.GetColumn(1).Width = 20; // Set column B to 20 characters // Number formatting var salaryColumn = worksheet["E2:E3"]; salaryColumn.FormatString = "$#,##0.00"; // Date formatting var dateColumn = worksheet["F2:F3"]; dateColumn.FormatString = "MM/dd/yyyy"; // Cell borders var dataRange = worksheet["A1:G3"]; dataRange.Style.TopBorder.Type = IronXl.Styles.BorderType.Thin; dataRange.Style.BottomBorder.Type = IronXl.Styles.BorderType.Thin; dataRange.Style.LeftBorder.Type = IronXl.Styles.BorderType.Thin; dataRange.Style.RightBorder.Type = IronXl.Styles.BorderType.Thin; // To set border color, use: dataRange.Style.TopBorder.Color = "#000000"; dataRange.Style.BottomBorder.Color = "#000000"; dataRange.Style.LeftBorder.Color = "#000000"; dataRange.Style.RightBorder.Color = "#000000"; // Text alignment worksheet["A1:G1"].Style.HorizontalAlignment = IronXl.Styles.HorizontalAlignment.Center; // Alternating row colors for readability for (int row = 2; row <= 3; row++) { if (row % 2 == 0) { worksheet[$"A{row}:G{row}"].Style.SetBackgroundColor("#F2F2F2"); } } using IronXL; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Create a worksheet WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Header formatting var headerRange = worksheet["A1:D1"]; headerRange.Style.Font.Bold = true; headerRange.Style.Font.Height = 12; headerRange.Style.SetBackgroundColor("#4472C4"); headerRange.Style.Font.Color = "#FFFFFF"; // Column width adjustment worksheet.AutoSizeColumn(0); // Auto-fit column A worksheet.GetColumn(1).Width = 20; // Set column B to 20 characters // Number formatting var salaryColumn = worksheet["E2:E3"]; salaryColumn.FormatString = "$#,##0.00"; // Date formatting var dateColumn = worksheet["F2:F3"]; dateColumn.FormatString = "MM/dd/yyyy"; // Cell borders var dataRange = worksheet["A1:G3"]; dataRange.Style.TopBorder.Type = IronXl.Styles.BorderType.Thin; dataRange.Style.BottomBorder.Type = IronXl.Styles.BorderType.Thin; dataRange.Style.LeftBorder.Type = IronXl.Styles.BorderType.Thin; dataRange.Style.RightBorder.Type = IronXl.Styles.BorderType.Thin; // To set border color, use: dataRange.Style.TopBorder.Color = "#000000"; dataRange.Style.BottomBorder.Color = "#000000"; dataRange.Style.LeftBorder.Color = "#000000"; dataRange.Style.RightBorder.Color = "#000000"; // Text alignment worksheet["A1:G1"].Style.HorizontalAlignment = IronXl.Styles.HorizontalAlignment.Center; // Alternating row colors for readability for (int row = 2; row <= 3; row++) { if (row % 2 == 0) { worksheet[$"A{row}:G{row}"].Style.SetBackgroundColor("#F2F2F2"); } } $vbLabelText $csharpLabel 이 서식 코드로 기업 표준을 충족하는 전문적인 외관을 만듭니다. 배경 색상이 있는 굵은 헤더는 시각적 계층 구조를 설정합니다. SetBackgroundColor() 메서드는 hex 색상 코드를 받아, 색상 체계를 정밀하게 제어할 수 있습니다. 글꼴 속성에는 크기, 색상, 굵게, 기울임꼴, 밑줄 옵션이 포함되며, 이는 회사의 브랜딩 가이드라인에 맞춘 Excel 파일을 만드는 데 필수적입니다. 열 너비 조정은 텍스트 잘림을 방지합니다. AutoSizeColumn()는 내용을 자동으로 맞추고, SetColumnWidth()는 정확한 제어를 제공합니다. 숫자 형식 지정은 Excel의 형식 코드를 사용합니다. 예를 들어, "$#,##0.00"은 천 단위 구분 기호와 소수점 두 자리를 포함하여 통화를 표시합니다. 날짜 형식 지정은 유사한 패턴을 따르며, Microsoft의 Excel 사양에 문서화 된 표준 Excel 날짜 형식 문자열을 사용합니다. 테두리는 데이터 경계를 정의하여 가독성을 향상시킵니다. BorderType 열거형은 얇은, 중간, 두꺼운, 점선, 대쉬 등의 다양한 스타일을 제공합니다. 정렬 옵션은 헤더를 중앙에 맞추고 숫자를 오른쪽으로 정렬하여 스프레드시트의 관례를 따릅니다. 대체 행의 색상은 종종 "띠 모양 행"이라고 하며, 읽기가 넓은 데이터 세트에서 정보 추적을 돕습니다. 고급 형식 지정에 대해 더 알아보고 셀 스타일링 가이드에서 형식이 지정된 Excel 데이터를 만드는 방법을 배우세요. 산출 프로그램적으로 Excel 수식을 사용하는 방법은? Excel 수식은 자동 계산으로 스프레드시트에 생명을 불어넣습니다. IronXL은 수식 생성과 평가를 지원하여 자동으로 업데이트되는 동적 스프레드시트를 가능하게 합니다. var workbook = WorkBook.Create(); // Create a budget worksheet WorkSheet budget = workbook.CreateWorkSheet("Q1 Budget"); // Headers budget["A1"].Value = "Category"; budget["B1"].Value = "January"; budget["C1"].Value = "February"; budget["D1"].Value = "March"; budget["E1"].Value = "Q1 Total"; // Budget categories and values string[] categories = { "Salaries", "Marketing", "Operations", "Equipment", "Training" }; decimal[,] monthlyBudgets = { { 50000, 52000, 51000 }, { 15000, 18000, 20000 }, { 8000, 8500, 9000 }, { 12000, 5000, 7000 }, { 3000, 3500, 4000 } }; // Populate data for (int i = 0; i < categories.Length; i++) { budget[$"A{i + 2}"].Value = categories[i]; budget[$"B{i + 2}"].Value = monthlyBudgets[i, 0]; budget[$"C{i + 2}"].Value = monthlyBudgets[i, 1]; budget[$"D{i + 2}"].Value = monthlyBudgets[i, 2]; // Row total formula budget[$"E{i + 2}"].Formula = $"=SUM(B{i + 2}:D{i + 2})"; } // Monthly totals row budget["A7"].Value = "Monthly Total"; budget["B7"].Formula = "=SUM(B2:B6)"; budget["C7"].Formula = "=SUM(C2:C6)"; budget["D7"].Formula = "=SUM(D2:D6)"; budget["E7"].Formula = "=SUM(E2:E6)"; // Calculate percentages budget["A9"].Value = "Marketing %"; budget["B9"].Formula = "=B3/B7*100"; budget["C9"].Formula = "=C3/C7*100"; budget["D9"].Formula = "=D3/D7*100"; // Average calculation budget["A10"].Value = "Average Spending"; budget["B10"].Formula = "=AVERAGE(B2:B6)"; // Evaluate all formulas workbook.EvaluateAll(); workbook.SaveAs("Budget.xlsx"); var workbook = WorkBook.Create(); // Create a budget worksheet WorkSheet budget = workbook.CreateWorkSheet("Q1 Budget"); // Headers budget["A1"].Value = "Category"; budget["B1"].Value = "January"; budget["C1"].Value = "February"; budget["D1"].Value = "March"; budget["E1"].Value = "Q1 Total"; // Budget categories and values string[] categories = { "Salaries", "Marketing", "Operations", "Equipment", "Training" }; decimal[,] monthlyBudgets = { { 50000, 52000, 51000 }, { 15000, 18000, 20000 }, { 8000, 8500, 9000 }, { 12000, 5000, 7000 }, { 3000, 3500, 4000 } }; // Populate data for (int i = 0; i < categories.Length; i++) { budget[$"A{i + 2}"].Value = categories[i]; budget[$"B{i + 2}"].Value = monthlyBudgets[i, 0]; budget[$"C{i + 2}"].Value = monthlyBudgets[i, 1]; budget[$"D{i + 2}"].Value = monthlyBudgets[i, 2]; // Row total formula budget[$"E{i + 2}"].Formula = $"=SUM(B{i + 2}:D{i + 2})"; } // Monthly totals row budget["A7"].Value = "Monthly Total"; budget["B7"].Formula = "=SUM(B2:B6)"; budget["C7"].Formula = "=SUM(C2:C6)"; budget["D7"].Formula = "=SUM(D2:D6)"; budget["E7"].Formula = "=SUM(E2:E6)"; // Calculate percentages budget["A9"].Value = "Marketing %"; budget["B9"].Formula = "=B3/B7*100"; budget["C9"].Formula = "=C3/C7*100"; budget["D9"].Formula = "=D3/D7*100"; // Average calculation budget["A10"].Value = "Average Spending"; budget["B10"].Formula = "=AVERAGE(B2:B6)"; // Evaluate all formulas workbook.EvaluateAll(); workbook.SaveAs("Budget.xlsx"); $vbLabelText $csharpLabel 이 예산 예시는 수식의 실제 응용을 보여줍니다. Formula 속성은 표준 Excel 수식 구문을 수용하며, 등호로 시작합니다. IronXL은 SUM, AVERAGE, COUNT, MAX, MIN 및 여러 다른 공통 함수를 지원합니다. 수식 내 셀 참조는 Excel에서와 정확히 동일하게 작동하며, 상대 및 절대 참조를 포함합니다. 행 총계 공식(=SUM(B{i + 2}:D{i + 2}))은 각 카테고리에 대한 분기별 총계를 계산합니다. 문자열 보간법은 각 행에 대한 올바른 셀 참조를 동적으로 생성합니다. 월별 총계는 전체 열을 합산하고, 백분율 계산은 특정 셀을 총계로 나누어 계산합니다. EvaluateAll() 메서드는 모든 공식을 처리하여, 전체 워크북의 계산된 값을 업데이트합니다. 이는 Excel에서 열릴 때 수식이 결과를 표시하도록 보장합니다. 평가가 없으면, Excel은 사용자가 재계산을 트리거할 때까지 수식을 보여줍니다. 산출 데이터베이스에서 Excel로 데이터를 내보내는 방법은? 실제 응용 프로그램은 종종 보고 및 분석을 위해 데이터베이스 데이터를 Excel로 내보냅니다. IronXL은 내장된 DataTable 지원을 통해 이 과정을 간소화하여, C# 응용 프로그램에서 Excel 파일을 생성할 때 수동 필드 맵핑의 필요성을 제거합니다. using System; using System.Data; using System.Data.SqlClient; // Simulate database retrieval (replace with your actual database code) DataTable GetSalesData() { DataTable dt = new DataTable("Sales"); dt.Columns.Add("OrderID", typeof(int)); dt.Columns.Add("CustomerName", typeof(string)); dt.Columns.Add("Product", typeof(string)); dt.Columns.Add("Quantity", typeof(int)); dt.Columns.Add("UnitPrice", typeof(decimal)); dt.Columns.Add("OrderDate", typeof(DateTime)); // Sample data (normally from database) dt.Rows.Add(1001, "ABC Corp", "Widget Pro", 50, 25.99m, DateTime.Now.AddDays(-5)); dt.Rows.Add(1002, "XYZ Ltd", "Widget Basic", 100, 15.99m, DateTime.Now.AddDays(-4)); dt.Rows.Add(1003, "ABC Corp", "Widget Premium", 25, 45.99m, DateTime.Now.AddDays(-3)); dt.Rows.Add(1004, "Tech Solutions", "Widget Pro", 75, 25.99m, DateTime.Now.AddDays(-2)); dt.Rows.Add(1005, "XYZ Ltd", "Widget Premium", 30, 45.99m, DateTime.Now.AddDays(-1)); return dt; } // Export to Excel WorkBook reportWorkbook = WorkBook.Create(); WorkSheet reportSheet = reportWorkbook.CreateWorkSheet("Sales Report"); // Get data from database DataTable salesData = GetSalesData(); // Method 1: Manual mapping with formatting reportSheet["A1"].Value = "Order Report - " + DateTime.Now.ToString("MMMM yyyy"); reportSheet.Merge("A1:F1"); reportSheet["A1"].Style.Font.Bold = true; reportSheet["A1"].Style.Font.Height = 14; // Headers int headerRow = 3; for (int col = 0; col < salesData.Columns.Count; col++) { reportSheet.SetCellValue(headerRow - 1, col, salesData.Columns[col].ColumnName); } // Format headers var headers = reportSheet[$"A{headerRow}:F{headerRow}"]; headers.Style.Font.Bold = true; headers.Style.SetBackgroundColor("#D9E1F2"); // Data rows for (int row = 0; row < salesData.Rows.Count; row++) { for (int col = 0; col < salesData.Columns.Count; col++) { reportSheet.SetCellValue(row + headerRow, col, salesData.Rows[row][col]); } // Add total column with formula reportSheet[$"G{row + headerRow + 1}"].Formula = $"=D{row + headerRow + 1}*E{row + headerRow + 1}"; } // Add total header and format reportSheet["G3"].Value = "Total"; reportSheet["G3"].Style.Font.Bold = true; reportSheet["G3"].Style.SetBackgroundColor("#D9E1F2"); // Format currency columns reportSheet[$"E{headerRow + 1}:E{headerRow + salesData.Rows.Count}"].FormatString = "$#,##0.00"; reportSheet[$"G{headerRow + 1}:G{headerRow + salesData.Rows.Count}"].FormatString = "$#,##0.00"; // Format date column reportSheet[$"F{headerRow + 1}:F{headerRow + salesData.Rows.Count}"].FormatString = "MM/dd/yyyy"; // Add summary section int summaryRow = headerRow + salesData.Rows.Count + 2; reportSheet[$"A{summaryRow}"].Value = "Summary"; reportSheet[$"A{summaryRow}"].Style.Font.Bold = true; reportSheet[$"A{summaryRow + 1}"].Value = "Total Orders:"; reportSheet[$"B{summaryRow + 1}"].Formula = $"=COUNTA(A{headerRow + 1}:A{headerRow + salesData.Rows.Count})"; reportSheet[$"A{summaryRow + 2}"].Value = "Total Revenue:"; reportSheet[$"B{summaryRow + 2}"].Formula = $"=SUM(G{headerRow + 1}:G{headerRow + salesData.Rows.Count})"; reportSheet[$"B{summaryRow + 2}"].FormatString = "$#,##0.00"; // Auto-fit columns for (int col = 0; col <= 6; col++) { reportSheet.AutoSizeColumn(col); } // Evaluate formulas and save reportWorkbook.EvaluateAll(); reportWorkbook.SaveAs("DatabaseExport.xlsx"); using System; using System.Data; using System.Data.SqlClient; // Simulate database retrieval (replace with your actual database code) DataTable GetSalesData() { DataTable dt = new DataTable("Sales"); dt.Columns.Add("OrderID", typeof(int)); dt.Columns.Add("CustomerName", typeof(string)); dt.Columns.Add("Product", typeof(string)); dt.Columns.Add("Quantity", typeof(int)); dt.Columns.Add("UnitPrice", typeof(decimal)); dt.Columns.Add("OrderDate", typeof(DateTime)); // Sample data (normally from database) dt.Rows.Add(1001, "ABC Corp", "Widget Pro", 50, 25.99m, DateTime.Now.AddDays(-5)); dt.Rows.Add(1002, "XYZ Ltd", "Widget Basic", 100, 15.99m, DateTime.Now.AddDays(-4)); dt.Rows.Add(1003, "ABC Corp", "Widget Premium", 25, 45.99m, DateTime.Now.AddDays(-3)); dt.Rows.Add(1004, "Tech Solutions", "Widget Pro", 75, 25.99m, DateTime.Now.AddDays(-2)); dt.Rows.Add(1005, "XYZ Ltd", "Widget Premium", 30, 45.99m, DateTime.Now.AddDays(-1)); return dt; } // Export to Excel WorkBook reportWorkbook = WorkBook.Create(); WorkSheet reportSheet = reportWorkbook.CreateWorkSheet("Sales Report"); // Get data from database DataTable salesData = GetSalesData(); // Method 1: Manual mapping with formatting reportSheet["A1"].Value = "Order Report - " + DateTime.Now.ToString("MMMM yyyy"); reportSheet.Merge("A1:F1"); reportSheet["A1"].Style.Font.Bold = true; reportSheet["A1"].Style.Font.Height = 14; // Headers int headerRow = 3; for (int col = 0; col < salesData.Columns.Count; col++) { reportSheet.SetCellValue(headerRow - 1, col, salesData.Columns[col].ColumnName); } // Format headers var headers = reportSheet[$"A{headerRow}:F{headerRow}"]; headers.Style.Font.Bold = true; headers.Style.SetBackgroundColor("#D9E1F2"); // Data rows for (int row = 0; row < salesData.Rows.Count; row++) { for (int col = 0; col < salesData.Columns.Count; col++) { reportSheet.SetCellValue(row + headerRow, col, salesData.Rows[row][col]); } // Add total column with formula reportSheet[$"G{row + headerRow + 1}"].Formula = $"=D{row + headerRow + 1}*E{row + headerRow + 1}"; } // Add total header and format reportSheet["G3"].Value = "Total"; reportSheet["G3"].Style.Font.Bold = true; reportSheet["G3"].Style.SetBackgroundColor("#D9E1F2"); // Format currency columns reportSheet[$"E{headerRow + 1}:E{headerRow + salesData.Rows.Count}"].FormatString = "$#,##0.00"; reportSheet[$"G{headerRow + 1}:G{headerRow + salesData.Rows.Count}"].FormatString = "$#,##0.00"; // Format date column reportSheet[$"F{headerRow + 1}:F{headerRow + salesData.Rows.Count}"].FormatString = "MM/dd/yyyy"; // Add summary section int summaryRow = headerRow + salesData.Rows.Count + 2; reportSheet[$"A{summaryRow}"].Value = "Summary"; reportSheet[$"A{summaryRow}"].Style.Font.Bold = true; reportSheet[$"A{summaryRow + 1}"].Value = "Total Orders:"; reportSheet[$"B{summaryRow + 1}"].Formula = $"=COUNTA(A{headerRow + 1}:A{headerRow + salesData.Rows.Count})"; reportSheet[$"A{summaryRow + 2}"].Value = "Total Revenue:"; reportSheet[$"B{summaryRow + 2}"].Formula = $"=SUM(G{headerRow + 1}:G{headerRow + salesData.Rows.Count})"; reportSheet[$"B{summaryRow + 2}"].FormatString = "$#,##0.00"; // Auto-fit columns for (int col = 0; col <= 6; col++) { reportSheet.AutoSizeColumn(col); } // Evaluate formulas and save reportWorkbook.EvaluateAll(); reportWorkbook.SaveAs("DatabaseExport.xlsx"); $vbLabelText $csharpLabel 이 포괄적인 예제는 C#에서 Excel 파일을 생성하기 위한 완전한 데이터베이스 대 Excel 워크플로우를 보여줍니다. DataTable는 데이터베이스 검색을 시뮬레이트합니다 - 실제 환경에서는 Entity Framework, Dapper 또는 ADO.NET을 사용하여 실제 데이터베이스 쿼리로 대체하세요. 수동 매핑 접근법은 형식 및 레이아웃에 대한 완벽한 제어를 제공하며, Microsoft의 데이터 내보내기 모범 사례에 추천됩니다. 코드는 제목, 서식이 있는 헤더 및 데이터 행이 있는 전문 보고서를 생성합니다. 수식 열은 라인 총계를 동적으로 계산합니다. 요약 섹션은 주문 수를 계산하고 수익을 합산하기 위해 Excel 수식을 사용하여 데이터가 변경될 경우 이러한 값이 업데이트되도록 합니다. 통화 및 날짜 형식은 비즈니스 문서 표준을 따르며, 열 자동 조정은 모든 콘텐츠가 올바르게 표시되도록 보장합니다. 더 큰 데이터세트를 처리하려면 성능 최적화 가이드를 참조하세요. 산출 Excel 보고를 간소화해야 하나요? 라이선스를 얻으세요 IronXL의 전체 잠재력을 풀어 프로덕션 배포를 위해. 여러 워크시트를 다루는 방법은? 복잡한 Excel 파일은 종종 관련된 데이터를 조직하기 위해 여러 워크시트를 필요로 합니다. IronXL은 워크시트 생성, 액세스 및 정리를 위한 직관적인 방법으로 다중 시트 관리를 간소화합니다. // Create a multi-sheet workbook WorkBook companyReport = WorkBook.Create(); // Create department sheets WorkSheet salesSheet = companyReport.CreateWorkSheet("Sales"); WorkSheet inventorySheet = companyReport.CreateWorkSheet("Inventory"); WorkSheet hrSheet = companyReport.CreateWorkSheet("HR Metrics"); // Populate Sales sheet salesSheet["A1"].Value = "Sales Dashboard"; salesSheet["A3"].Value = "Region"; salesSheet["B3"].Value = "Q1 Sales"; salesSheet["C3"].Value = "Q2 Sales"; string[] regions = { "North", "South", "East", "West" }; decimal[] q1Sales = { 250000, 180000, 220000, 195000 }; decimal[] q2Sales = { 275000, 195000, 240000, 210000 }; for (int i = 0; i < regions.Length; i++) { salesSheet[$"A{i + 4}"].Value = regions[i]; salesSheet[$"B{i + 4}"].Value = q1Sales[i]; salesSheet[$"C{i + 4}"].Value = q2Sales[i]; } // Populate Inventory sheet inventorySheet["A1"].Value = "Inventory Status"; inventorySheet["A3"].Value = "Product"; inventorySheet["B3"].Value = "Stock Level"; inventorySheet["C3"].Value = "Reorder Point"; inventorySheet["D3"].Value = "Status"; // Add inventory data with conditional status string[] products = { "Widget A", "Widget B", "Widget C" }; int[] stock = { 150, 45, 200 }; int[] reorderPoint = { 100, 50, 75 }; for (int i = 0; i < products.Length; i++) { inventorySheet[$"A{i + 4}"].Value = products[i]; inventorySheet[$"B{i + 4}"].Value = stock[i]; inventorySheet[$"C{i + 4}"].Value = reorderPoint[i]; // Status based on stock level string status = stock[i] <= reorderPoint[i] ? "REORDER" : "OK"; inventorySheet[$"D{i + 4}"].Value = status; // Color code status if (status == "REORDER") { inventorySheet[$"D{i + 4}"].Style.Font.Color = "#FF0000"; } } // Create summary sheet referencing other sheets WorkSheet summarySheet = companyReport.CreateWorkSheet("Summary"); summarySheet["A1"].Value = "Company Overview"; summarySheet["A3"].Value = "Metric"; summarySheet["B3"].Value = "Value"; summarySheet["A4"].Value = "Total Q1 Sales"; summarySheet["B4"].Formula = "=SUM(Sales!B4:B7)"; summarySheet["A5"].Value = "Total Q2 Sales"; summarySheet["B5"].Formula = "=SUM(Sales!C4:C7)"; summarySheet["A6"].Value = "Products Need Reorder"; summarySheet["B6"].Formula = "=COUNTIF(Inventory!D4:D6,\"REORDER\")"; // Format all sheets consistently foreach (WorkSheet sheet in companyReport.WorkSheets) { // Format headers sheet["A1"].Style.Font.Bold = true; sheet["A1"].Style.Font.Height = 14; var headerRow = sheet["A3:D3"]; headerRow.Style.Font.Bold = true; headerRow.Style.SetBackgroundColor("#E7E6E6"); } // Save multi-sheet workbook companyReport.SaveAs("CompanyReport.xlsx"); // Create a multi-sheet workbook WorkBook companyReport = WorkBook.Create(); // Create department sheets WorkSheet salesSheet = companyReport.CreateWorkSheet("Sales"); WorkSheet inventorySheet = companyReport.CreateWorkSheet("Inventory"); WorkSheet hrSheet = companyReport.CreateWorkSheet("HR Metrics"); // Populate Sales sheet salesSheet["A1"].Value = "Sales Dashboard"; salesSheet["A3"].Value = "Region"; salesSheet["B3"].Value = "Q1 Sales"; salesSheet["C3"].Value = "Q2 Sales"; string[] regions = { "North", "South", "East", "West" }; decimal[] q1Sales = { 250000, 180000, 220000, 195000 }; decimal[] q2Sales = { 275000, 195000, 240000, 210000 }; for (int i = 0; i < regions.Length; i++) { salesSheet[$"A{i + 4}"].Value = regions[i]; salesSheet[$"B{i + 4}"].Value = q1Sales[i]; salesSheet[$"C{i + 4}"].Value = q2Sales[i]; } // Populate Inventory sheet inventorySheet["A1"].Value = "Inventory Status"; inventorySheet["A3"].Value = "Product"; inventorySheet["B3"].Value = "Stock Level"; inventorySheet["C3"].Value = "Reorder Point"; inventorySheet["D3"].Value = "Status"; // Add inventory data with conditional status string[] products = { "Widget A", "Widget B", "Widget C" }; int[] stock = { 150, 45, 200 }; int[] reorderPoint = { 100, 50, 75 }; for (int i = 0; i < products.Length; i++) { inventorySheet[$"A{i + 4}"].Value = products[i]; inventorySheet[$"B{i + 4}"].Value = stock[i]; inventorySheet[$"C{i + 4}"].Value = reorderPoint[i]; // Status based on stock level string status = stock[i] <= reorderPoint[i] ? "REORDER" : "OK"; inventorySheet[$"D{i + 4}"].Value = status; // Color code status if (status == "REORDER") { inventorySheet[$"D{i + 4}"].Style.Font.Color = "#FF0000"; } } // Create summary sheet referencing other sheets WorkSheet summarySheet = companyReport.CreateWorkSheet("Summary"); summarySheet["A1"].Value = "Company Overview"; summarySheet["A3"].Value = "Metric"; summarySheet["B3"].Value = "Value"; summarySheet["A4"].Value = "Total Q1 Sales"; summarySheet["B4"].Formula = "=SUM(Sales!B4:B7)"; summarySheet["A5"].Value = "Total Q2 Sales"; summarySheet["B5"].Formula = "=SUM(Sales!C4:C7)"; summarySheet["A6"].Value = "Products Need Reorder"; summarySheet["B6"].Formula = "=COUNTIF(Inventory!D4:D6,\"REORDER\")"; // Format all sheets consistently foreach (WorkSheet sheet in companyReport.WorkSheets) { // Format headers sheet["A1"].Style.Font.Bold = true; sheet["A1"].Style.Font.Height = 14; var headerRow = sheet["A3:D3"]; headerRow.Style.Font.Bold = true; headerRow.Style.SetBackgroundColor("#E7E6E6"); } // Save multi-sheet workbook companyReport.SaveAs("CompanyReport.xlsx"); $vbLabelText $csharpLabel 이 예제는 완전한 다중 시트 보고서를 생성합니다. 각 워크시트는 판매 데이터, 재고 추적 및 HR 메트릭과 같은 특정 목적을 수행합니다. 요약 시트는 교차 시트 수식을 사용하여 주요 메트릭을 통합합니다. 수식에서 시트 참조 구문 "Sales!B4:B7"은 Sales 시트의 셀 B4에서 B7까지를 참조합니다. 재고 시트는 조건 논리를 사용하여 재고가 적은 항목을 빨간색으로 표시에 즉각적인 주의를 기울입니다. foreach 루프는 전체 시트에 일관된 서식을 적용하여, 워크북 전체에 전문적인 외관을 유지합니다. 시트 이름은 Excel에서 탭으로 나타나 사용자들이 다양한 데이터 뷰를 쉽게 탐색할 수 있게 합니다. 엑셀 생성을 위한 모범 사례는 무엇인가요? C#에서 효율적인 Excel 파일 생성을 위해 메모리 사용, 오류 처리 및 배포에 대한 신중한 접근이 필요합니다. 이러한 관행은 Excel 스프레드시트를 프로그래밍적으로 생성할 때 애플리케이션이 효율적으로 확장되고 신뢰성을 유지하도록 보장합니다. 대형 파일에서는 메모리 관리가 중요해집니다. 전체 데이터셋을 메모리에 로드하는 대신, 데이터를 청크로 처리하세요: // Process large datasets efficiently public void ExportLargeDataset(string filename) { WorkBook workbook = WorkBook.Create(); WorkSheet sheet = workbook.CreateWorkSheet("Data"); int rowsPerBatch = 1000; int currentRow = 1; // Process in batches foreach (var batch in GetDataInBatches(rowsPerBatch)) { foreach (var record in batch) { sheet[$"A{currentRow}"].Value = record.Id; sheet[$"B{currentRow}"].Value = record.Name; sheet[$"C{currentRow}"].Value = record.Value; currentRow++; } } workbook.SaveAs(filename); } // Process large datasets efficiently public void ExportLargeDataset(string filename) { WorkBook workbook = WorkBook.Create(); WorkSheet sheet = workbook.CreateWorkSheet("Data"); int rowsPerBatch = 1000; int currentRow = 1; // Process in batches foreach (var batch in GetDataInBatches(rowsPerBatch)) { foreach (var record in batch) { sheet[$"A{currentRow}"].Value = record.Id; sheet[$"B{currentRow}"].Value = record.Name; sheet[$"C{currentRow}"].Value = record.Value; currentRow++; } } workbook.SaveAs(filename); } $vbLabelText $csharpLabel 오류 처리는 애플리케이션 충돌을 방지하고 Excel 파일을 생성할 때 의미 있는 피드백을 제공합니다: try { WorkBook workbook = WorkBook.Create(); // Excel generation code workbook.SaveAs("output.xlsx"); } catch (Exception ex) { // Log the error Console.WriteLine($"Excel generation failed: {ex.Message}"); // Implement appropriate recovery or notification } try { WorkBook workbook = WorkBook.Create(); // Excel generation code workbook.SaveAs("output.xlsx"); } catch (Exception ex) { // Log the error Console.WriteLine($"Excel generation failed: {ex.Message}"); // Implement appropriate recovery or notification } $vbLabelText $csharpLabel 웹 응용 프로그램의 경우 메모리에서 Excel 파일을 생성하고 사용자에게 스트리밍하세요: // ASP.NET Core example public IActionResult DownloadExcel() { WorkBook workbook = GenerateReport(); var stream = new MemoryStream(); workbook.SaveAs(stream); stream.Position = 0; return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "report.xlsx"); } // ASP.NET Core example public IActionResult DownloadExcel() { WorkBook workbook = GenerateReport(); var stream = new MemoryStream(); workbook.SaveAs(stream); stream.Position = 0; return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "report.xlsx"); } $vbLabelText $csharpLabel 배포 고려사항은 원활한 생산 운영을 보장합니다. IronXL은 향상된 권한 없이 제한된 환경에서 작동하므로 공유 호스팅 및 컨테이너화된 배포에 적합합니다. 배포 패키지에 IronXL 라이선스 파일을 포함하고, 필요시 임시 파일 작업에 대한 쓰기 권한을 애플리케이션에 부여하세요. 추가 배포 가이드를 위해서, 배포 문서를 참조하세요. 결론 IronXL은 C#에서의 Excel 파일 생성을 복잡한 도전 과제에서 직접적인 코딩으로 변환합니다. 워크북을 생성하고, 셀을 채우고, 서식을 적용하고, 수식을 사용하고, 데이터베이스 데이터를 내보내는 방법을 학습했으며, Microsoft Office 종속성 없이 모두 수행됩니다. 프로그래밍 방식으로 Excel 파일을 생성하는 이러한 기술은 Windows, Linux 및 클라우드 플랫폼에서 일관되게 작동합니다. C# 애플리케이션에서 Excel 생성을 구현할 준비가 되셨나요? 무료 체험을 시작하거나 고급 기능을 위한 포괄적인 API 문서를 탐색하세요. 프로덕션 배포의 경우, 프로젝트 요구 사항에 맞는 라이선스 옵션을 확인하세요. 자주 묻는 질문 IronXL 이란 무엇인가요? IronXL 은 Microsoft Office나 복잡한 COM 상호 운용성 없이도 .NET 애플리케이션에서 Excel 파일을 생성, 읽기 및 편집할 수 있는 강력한 라이브러리입니다. IronXL 사용하여 C#에서 Excel 파일을 어떻게 생성할 수 있나요? IronXL 사용하면 사용자 친화적인 API를 활용하여 C#으로 Excel 파일을 프로그래밍 방식으로 생성할 수 있습니다. 여기에는 스프레드시트 생성, 서식 적용 및 데이터베이스 통합이 포함됩니다. IronXL 사용하려면 Microsoft Office가 설치되어 있어야 하나요? 아니요, IronXL Microsoft Office를 필요로 하지 않습니다. Office에 의존하지 않고도 Excel 파일을 생성하고 편집할 수 있습니다. IronXL XLS 및 XLSX 파일 형식을 모두 처리할 수 있습니까? 네, IronXL XLS 및 XLSX 파일 형식을 모두 지원하므로 다양한 Excel 파일을 원활하게 작업할 수 있습니다. IronXL 보고서 작성 및 데이터 내보내기에 적합한가요? 물론입니다. IronXL 강력한 기능과 원활한 통합 기능 덕분에 보고서 생성 및 데이터를 Excel 파일로 내보내는 데 이상적입니다. IronXL 어떤 서식 옵션을 제공하나요? IronXL 셀 스타일 지정, 조건부 서식 지정 등 고급 서식 옵션을 제공하여 시각적으로 매력적이고 잘 정리된 Excel 문서를 만들 수 있도록 지원합니다. IronXL 사용하여 스프레드시트 생성을 자동화할 수 있습니까? 네, IronXL 스프레드시트 생성 프로세스를 자동화하여 대규모 데이터 세트와 반복적인 작업을 효율적으로 처리할 수 있도록 지원합니다. IronXL C#뿐만 아니라 Visual Basic과도 호환됩니까? 네, IronXL C#과 Visual Basic 모두에서 사용할 수 있어 .NET 환경에서 다양한 프로그래밍 언어를 사용하는 개발자에게 유연성을 제공합니다. IronXL 데이터베이스와 어떻게 연동되나요? IronXL 데이터베이스와의 손쉬운 통합을 제공하여 최소한의 노력으로 Excel 파일과 데이터베이스 시스템 간의 데이터 가져오기 및 내보내기를 가능하게 합니다. .NET 애플리케이션에서 IronXL 사용하는 방법에 대한 튜토리얼은 어디에서 찾을 수 있나요? Iron Software 웹사이트에서 IronXL .NET 애플리케이션에 사용하는 방법에 대한 자세한 튜토리얼을 찾아볼 수 있으며, 기초부터 고급까지 Excel 파일 생성 및 조작에 대한 안내를 제공합니다. 커티스 차우 지금 바로 엔지니어링 팀과 채팅하세요 기술 문서 작성자 커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, 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#에서 StreamReader를 사용하여 Excel 파일을 읽는 대안 - IronXLIronXL 사용하여 C#에서 데이...
업데이트됨 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 통합 문서를 로드하는 방법을 알아보세요. 더 읽어보기