IronXL 사용하여 .NET 에서 CSV 파일을 작성하는 방법
왜 .NET 개발자들이 더 나은 CSV 솔루션이 필요한가요?
CSV 파일은 수많은 .NET 애플리케이션 전반에 걸쳐 데이터 교환을 가능하게 합니다 -- 그리고 표준 라이브러리 옵션은 실세계의 복잡성을 처리해야 할 때 종종 부족합니다. 금융 보고서에서 재고 시스템에 이르기까지, 몇 줄의 코드만으로 프로그래밍 방식으로 CSV 파일을 생성할 수 있습니다. CsvHelper와 같은 라이브러리는 기본적인 CSV 작업을 다루지만, 현대 개발자는 엑셀 워크북 변환, 내보내기 시 데이터 형식 보존, 엔터프라이즈 등급의 스프레드시트 워크플로우 처리와 같은 복잡한 시나리오에 직면합니다. IronXL은 신뢰할 수 있는 CSV 작성과 전체 Excel 기능을 통합한 단일, 종속성 없는 라이브러리를 제공함으로써 이러한 문제를 해결하며, RFC 4180 표준을 따릅니다.
이것은 여러 열, 행별 처리 로직, 자동으로 추론된 구분자를 지원하는 맞춤 .NET CSV 작성기 또는 .NET CSV 파서를 구축하는 개발자에게 이상적입니다. 이 튜토리얼은 IronXL의 CSV 기능을 통한 파일 생성의 기본부터 기업 규모의 데이터 내보내기에 이르기까지 안내합니다.
IronXL을 설치하고 설정하는 방법은?
IronXL은 NuGet 패키지 관리자를 통해 몇 초 만에 설치됩니다. 패키지 관리자 콘솔 또는 .NET CLI 중 하나를 사용할 수 있습니다:
Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
설치 후, IronXL 네임스페이스를 추가하고 즉시 CSV 파일 작성을 시작하십시오. 다음 예제는 워크북을 생성하고 데이터를 채우고, .NET 10의 최상위 명령문을 사용하여 CSV로 내보내는 방법을 보여줍니다:
using IronXL;
// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("data");
// Add headers
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";
// Add data rows
workSheet["A2"].Value = "Widget";
workSheet["B2"].Value = 100;
workSheet["C2"].Value = 19.99;
workSheet["A3"].Value = "Gadget";
workSheet["B3"].Value = 250;
workSheet["C3"].Value = 34.50;
workSheet["A4"].Value = "Component";
workSheet["B4"].Value = 75;
workSheet["C4"].Value = 8.99;
// Save as CSV with comma delimiter
workBook.SaveAsCsv("inventory.csv", ",");
using IronXL;
// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("data");
// Add headers
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";
// Add data rows
workSheet["A2"].Value = "Widget";
workSheet["B2"].Value = 100;
workSheet["C2"].Value = 19.99;
workSheet["A3"].Value = "Gadget";
workSheet["B3"].Value = 250;
workSheet["C3"].Value = 34.50;
workSheet["A4"].Value = "Component";
workSheet["B4"].Value = 75;
workSheet["C4"].Value = 8.99;
// Save as CSV with comma delimiter
workBook.SaveAsCsv("inventory.csv", ",");
Imports IronXL
' Create a new workbook and worksheet
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")
' Add headers
workSheet("A1").Value = "Product"
workSheet("B1").Value = "Quantity"
workSheet("C1").Value = "Price"
' Add data rows
workSheet("A2").Value = "Widget"
workSheet("B2").Value = 100
workSheet("C2").Value = 19.99
workSheet("A3").Value = "Gadget"
workSheet("B3").Value = 250
workSheet("C3").Value = 34.5
workSheet("A4").Value = "Component"
workSheet("B4").Value = 75
workSheet("C4").Value = 8.99
' Save as CSV with comma delimiter
workBook.SaveAsCsv("inventory.csv", ",")
이 간단한 프로그램은 C# 코드에서 직접 CSV 내용을 작성하여 데이터를 보유하는 WorkBook 객체를 만드는 방법을 보여줍니다. SaveAsCsv 메서드는 콤마를 기본 구분자로 사용하지만 해당 구분자로 모든 문자를 지정할 수 있습니다 -- 쉼표나 탭이 표준 열 구분자인 지역별 시나리오에 유용합니다.
WorkBook과 WorkSheet 모델 이해하기
IronXL은 워크북에서 워크시트로 이어지는 계층 구조를 통해 데이터를 조직합니다. WorkBook은 하나 이상의 WorkSheet 객체의 컨테이너 역할을 하며, 각각은 셀의 그리드를 나타냅니다. CSV로 내보낼 때 IronXL은 워크시트당 하나의 파일을 생성하며, filename.SheetName.csv 패턴으로 이름을 지정합니다.
이 모델은 새로운 파일을 처음부터 생성하든, 기존의 Excel 워크북을 로드하든, 데이터베이스에서 데이터를 내보내든 일관된 API를 제공합니다. 표준 Excel 표기법(A1, B2) 또는 워크플로에 맞는 0 기반 행 및 열 정수 중 하나를 사용하여 셀을 참조합니다.
맞춤 구분자를 사용하여 CSV 파일을 작성하는 방법은?
다른 지역과 시스템은 서로 다른 열 구분자를 기대합니다. 유럽 지역은 콤마가 소수 자릿수로 나타나기 때문에 종종 세미콜론을 사용합니다. 탭 구분 값(TSV)은 생물 정보학 및 로그 처리 파이프라인에서 일반적입니다. IronXL의 SaveAsCsv 메서드는 모든 문자열을 구분 기호로 사용할 수 있습니다:
using IronXL;
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
workSheet["A1"].Value = "Region";
workSheet["B1"].Value = "Revenue";
workSheet["C1"].Value = "Units";
workSheet["A2"].Value = "Europe";
workSheet["B2"].Value = "1250000.50";
workSheet["C2"].Value = 3400;
workSheet["A3"].Value = "아니요rth America";
workSheet["B3"].Value = "2800000.00";
workSheet["C3"].Value = 7200;
// Semicolon delimiter for European locales
workBook.SaveAsCsv("sales_europe.csv", ";");
// Tab delimiter for TSV output
workBook.SaveAsCsv("sales_tsv.tsv", "\t");
using IronXL;
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
workSheet["A1"].Value = "Region";
workSheet["B1"].Value = "Revenue";
workSheet["C1"].Value = "Units";
workSheet["A2"].Value = "Europe";
workSheet["B2"].Value = "1250000.50";
workSheet["C2"].Value = 3400;
workSheet["A3"].Value = "아니요rth America";
workSheet["B3"].Value = "2800000.00";
workSheet["C3"].Value = 7200;
// Semicolon delimiter for European locales
workBook.SaveAsCsv("sales_europe.csv", ";");
// Tab delimiter for TSV output
workBook.SaveAsCsv("sales_tsv.tsv", "\t");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("sales")
workSheet("A1").Value = "Region"
workSheet("B1").Value = "Revenue"
workSheet("C1").Value = "Units"
workSheet("A2").Value = "Europe"
workSheet("B2").Value = "1250000.50"
workSheet("C2").Value = 3400
workSheet("A3").Value = "아니요rth America"
workSheet("B3").Value = "2800000.00"
workSheet("C3").Value = 7200
' Semicolon delimiter for European locales
workBook.SaveAsCsv("sales_europe.csv", ";")
' Tab delimiter for TSV output
workBook.SaveAsCsv("sales_tsv.tsv", vbTab)
구분자 문자열은 추가적인 구문 분석 구성 없이 직접 구분자 문자 슬롯에 들어갑니다. IronXL은 RFC 4180을 준수하는 출력을 보장하며 구분자 문자가 포함된 셀에 대한 인용을 처리합니다.
Excel 워크북을 CSV로 변환하는 방법은?
IronXL을 사용하여 .NET CSV 작성기를 만드는 방법: 그림 1 - IronXL을 사용한 CSV 출력 예시
IronXL은 기존 Excel 파일을 CSV로 변환하고, 수식을 평가하며, 데이터 무결성을 보존하는 데 뛰어납니다. 이는 헤더 행과 동적으로 계산된 값을 모두 포함하는 스프레드시트 작업 시 필수적입니다.
using IronXL;
// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
// Evaluate all formulas before export so calculated values appear in CSV
workBook.EvaluateAll();
// Export to CSV -- each worksheet creates a separate CSV file
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
workBook.SaveAsCsv("report.csv", ",");
using IronXL;
// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
// Evaluate all formulas before export so calculated values appear in CSV
workBook.EvaluateAll();
// Export to CSV -- each worksheet creates a separate CSV file
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
workBook.SaveAsCsv("report.csv", ",");
Imports IronXL
' Load an Excel file with formulas and formatting
Dim workBook As WorkBook = WorkBook.Load("financial_report.xlsx")
' Evaluate all formulas before export so calculated values appear in CSV
workBook.EvaluateAll()
' Export to CSV -- each worksheet creates a separate CSV file
' Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
workBook.SaveAsCsv("report.csv", ",")
다중 시트 워크북을 변환할 때, IronXL은 각 워크시트에 대한 개별 CSV 파일을 자동으로 생성합니다. 수식 계산은 내보내기 전에 실행되어 최종 CSV 출력에 정확한 데이터를 보장합니다. EvaluateAll 메서드는 파일이 디스크에 쓰이기 전에 모든 수식, 시트 간 참조를 포함하여 해결합니다.
산출
먼저, 여기에서 다중 시트 Excel 파일에서 생성된 CSV 파일을 볼 수 있습니다:
IronXL을 사용하여 .NET CSV 작성기를 만드는 방법: 그림 2 - CSV 파일
그리고 이것은 엑셀 시트 중 하나와 해당하는 CSV 파일의 예비 비교입니다:
DataTable을 CSV로 어떻게 내보내나요?
데이터베이스 기반 애플리케이션의 경우 IronXL은 DataTable 내보내기를 간단하게 만듭니다. 다음 예는 모의 데이터 소스에서 DataTable를 읽고 세미콜론 구분 기호를 사용하여 CSV에 기록하는 예제입니다:
using System.Data;
using IronXL;
// Simulate a DataTable from a database query
DataTable dataTable = GetSalesData();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
// Write column headers from DataTable schema
for (int col = 0; col < dataTable.Columns.Count; col++)
{
workSheet.SetCellValue(0, col, dataTable.Columns[col].ColumnName);
}
// Write data rows
int row = 1;
foreach (DataRow dataRow in dataTable.Rows)
{
for (int col = 0; col < dataTable.Columns.Count; col++)
{
workSheet.SetCellValue(row, col, dataRow[col]?.ToString() ?? string.Empty);
}
row++;
}
// Export with semicolon delimiter for European compatibility
workBook.SaveAsCsv("sales_data.csv", ";");
using System.Data;
using IronXL;
// Simulate a DataTable from a database query
DataTable dataTable = GetSalesData();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
// Write column headers from DataTable schema
for (int col = 0; col < dataTable.Columns.Count; col++)
{
workSheet.SetCellValue(0, col, dataTable.Columns[col].ColumnName);
}
// Write data rows
int row = 1;
foreach (DataRow dataRow in dataTable.Rows)
{
for (int col = 0; col < dataTable.Columns.Count; col++)
{
workSheet.SetCellValue(row, col, dataRow[col]?.ToString() ?? string.Empty);
}
row++;
}
// Export with semicolon delimiter for European compatibility
workBook.SaveAsCsv("sales_data.csv", ";");
Imports System.Data
Imports IronXL
' Simulate a DataTable from a database query
Dim dataTable As DataTable = GetSalesData()
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("sales")
' Write column headers from DataTable schema
For col As Integer = 0 To dataTable.Columns.Count - 1
workSheet.SetCellValue(0, col, dataTable.Columns(col).ColumnName)
Next
' Write data rows
Dim row As Integer = 1
For Each dataRow As DataRow In dataTable.Rows
For col As Integer = 0 To dataTable.Columns.Count - 1
workSheet.SetCellValue(row, col, If(dataRow(col)?.ToString(), String.Empty))
Next
row += 1
Next
' Export with semicolon delimiter for European compatibility
workBook.SaveAsCsv("sales_data.csv", ";")
DataTable에서 가져올 때 dataTable.Rows 컬렉션의 각 행은 워크시트에서 새 행이 됩니다. IronXL은 변환 중 데이터 유형을 보존합니다 -- 숫자는 숫자 그대로 유지되고, 날짜는 포맷을 유지하며, 텍스트는 특별 문자를 추가 구성 없이 처리합니다.
산출
여기에서 모의 데이터 소스가 출력 CSV 파일 옆에 있는 것을 볼 수 있습니다:
IronXL을 사용하여 .NET CSV 작성기를 만드는 방법: 그림 4 - 데이터테이블을 CSV 출력으로 내보내기
!{--010011000100100101000010010100100100000101010010010110010101111101000111010001010101010001011111010100110101010001000001010101001001010100010001011111010101110100100 10101010001001000001011111010100000101001001001111010001000101010101000011010101000101111101010001010010010010010010010100000101001100010111110100001001001100010011110100001101001011--}
IronXL과 CsvHelper를 비교하여 CSV 파일을 작성하는 방법은?
두 라이브러리를 통한 CSV 작성 워크플로우를 보여주는 이 직원 데이터 내보내기 시나리오를 고려해보세요.
CsvHelper 구현:
using System.Globalization;
using System.IO;
using CsvHelper;
using var writer = new StreamWriter("employees.csv");
using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
csv.WriteRecords(employees);
using System.Globalization;
using System.IO;
using CsvHelper;
using var writer = new StreamWriter("employees.csv");
using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
csv.WriteRecords(employees);
Imports System.Globalization
Imports System.IO
Imports CsvHelper
Using writer As New StreamWriter("employees.csv")
Using csv As New CsvWriter(writer, CultureInfo.InvariantCulture)
csv.WriteRecords(employees)
End Using
End Using
IronXL 구현:
using IronXL;
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");
int rowIndex = 1;
foreach (var emp in employees)
{
workSheet[$"A{rowIndex}"].Value = emp.Name;
workSheet[$"B{rowIndex}"].Value = emp.Salary;
workSheet[$"C{rowIndex}"].Value = emp.StartDate;
rowIndex++;
}
workBook.SaveAsCsv("employees.csv", ",");
using IronXL;
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");
int rowIndex = 1;
foreach (var emp in employees)
{
workSheet[$"A{rowIndex}"].Value = emp.Name;
workSheet[$"B{rowIndex}"].Value = emp.Salary;
workSheet[$"C{rowIndex}"].Value = emp.StartDate;
rowIndex++;
}
workBook.SaveAsCsv("employees.csv", ",");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("employees")
Dim rowIndex As Integer = 1
For Each emp In employees
workSheet($"A{rowIndex}").Value = emp.Name
workSheet($"B{rowIndex}").Value = emp.Salary
workSheet($"C{rowIndex}").Value = emp.StartDate
rowIndex += 1
Next
workBook.SaveAsCsv("employees.csv", ",")
| 특징 | CsvHelper | IronXL |
|---|---|---|
| 기본적인 CSV 작성 | 예 | 예 |
| 엑셀에서 CSV로 변환 | 아니요 | 예 |
| 수식 평가 | 아니요 | 예 |
| 다중 시트 처리 | 아니요 | 예 |
| 데이터 유형 보존 | 수동 | 오토매틱 |
| Excel 포맷 지원 (XLSX, XLS, XLSM) | 아니요 | 예 |
| MS Office 불필요 | 예 | 예 |
| 셀 서식 및 스타일 | 아니요 | 예 |
| 크로스 플랫폼 (.NET 10 지원) | 예 | 예 |
CsvHelper는 POCO 객체의 직렬화를 효율적으로 처리합니다. IronXL은 기존 Excel 파일을 로드하거나, 내보내기 전에 수식을 평가하거나, 워크시트 범위를 세밀하게 제어해야 할 때 추가 기능을 제공합니다. 워크플로에 비즈니스 사용자로부터 .xlsx 파일을 받아 다운스트림 시스템용 CSV로 변환하는 작업이 포함되어 있는 경우, IronXL은 파이프라인에서 전체 변환 단계를 제거합니다.
CSV 내보내기를 위해 IronXL이 제공하는 엔터프라이즈 기능은 무엇인가요?
IronXL의 SaveAsCsv 메서드는 프로덕션에 바로 사용할 수 있는 여러 기능을 제공합니다:
| 특징 | 설명 | 사용 사례 |
|---|---|---|
| 사용자 정의 구분자 | 쉼표, 세미콜론, 탭 또는 기타 문자 | 지역 로케일 호환성 |
| 인코딩 옵션 | UTF-8, UTF-16 및 사용자 정의 인코딩 | 국제 문자 세트 |
| 수식 평가 | 내보내기 전에 Excel 수식 계산 | 재무 보고서, 동적 데이터 |
| 크로스 플랫폼 지원 | 윈도우, 리눅스, macOS | 클라우드 및 컨테이너 배포 |
| 다중 시트 내보내기 | 워크시트당 하나의 CSV 파일 | 복합 워크북 구조 |
| RFC 4180 준수 | 특수 문자에 대한 자동 인용 | 보장된 상호 운용성 |
CSV 출력에 숫자, 통화 및 날짜가 어떻게 표시되는지를 제어하기 위해 셀 데이터 서식을 적용할 수 있습니다. 대량의 데이터 세트를 처리할 때 워크시트 범위 연산을 사용하여 데이터를 청크에서 처리하여 메모리 사용량을 예측할 수 있게 합니다.
크로스 플랫폼 지원은 IronXL 기반 CSV 생성기를 Kubernetes나 Azure App Service의 Linux 컨테이너에 코드 변경 없이 배포할 수 있음을 의미합니다. 라이브러리는 관리되지 않는 종속성을 포함하지 않으므로 운영 체제에서 동일하게 실행됩니다. 지원되는 런타임에 대한 자세한 내용은 IronXL 플랫폼 호환성 가이드를 참조하십시오.
일반적인 CSV 내보내기 문제를 어떻게 처리하나요?
대규모로 CSV 내보내기를 할 때 몇 가지 예측 가능한 문제가 발생합니다. 여기에서는 각각을 해결하는 방법을 소개합니다:
데이터 내 특수 문자: IronXL은 셀 값 내의 따옴표, 쉼표 및 개행 문자를 자동으로 이스케이프합니다. 문자열을 사전 처리하거나 사용자 정의 이스케이프 로직을 작성할 필요가 없습니다. 라이브러리는 RFC 4180 인용 규칙을 내부적으로 처리합니다.
대용량 파일 처리: 수만 개의 행이 있는 워크북의 경우 워크시트 범위를 사용하여 데이터를 배치로 처리하세요. 최종 내보내기 전에 중간 시트에 쓰는 것은 메모리 할당을 제어할 수 있게 해줍니다.
인코딩 문제: 셀 값에서 국제 문자, 아시아어 스크립트 혹은 이모지를 처리할 때는 UTF-8 인코딩을 명시적으로 지정하세요. IronXL은 기본적으로 UTF-8 및 UTF-16 인코딩을 지원하므로 타사 인코딩 라이브러리가 필요하지 않습니다.
누락되거나 오타가 있는 데이터: IronXL은 기본적으로 숫자 및 날짜 포맷을 보존합니다. 셀에 누락된 데이터를 참조하는 수식이 포함된 경우 EvaluateAll()는 빈 텍스트를 자동으로 출력하지 않고 오류 값으로 해결되므로 데이터 품질 문제를 파이프라인 초기에 파악할 수 있습니다.
구분기호 충돌: 데이터에 구분 기호 문자가 포함된 경우(예: 쉼표를 구분 기호로 사용할 때 $1,200.00가 포함된 가격 필드) IronXL은 RFC 4180 규칙에 따라 자동으로 값을 큰따옴표로 묶습니다.
자세한 안내를 원하시면 IronXL CSV 문서, API 참고 문서, 지원 리소스를 방문하세요.
IronXL로 CSV 파일을 어떻게 읽고 구문 분석합니까?
CSV 쓰기는 이야기의 절반에 불과합니다. IronXL은 또한 CSV 읽기 및 구문 분석을 처리하여 쉼표로 구분된 데이터를 쿼리, 필터링 및 변환할 수 있는 워크북 구조에 로드한 후 필요한 형식으로 내보낼 수 있습니다.
using IronXL;
// Load an existing CSV file into a workbook
WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Iterate over rows and process data
foreach (var row in workSheet.Rows)
{
string product = row["A"].ToString();
int quantity = row["B"].IntValue;
decimal price = (decimal)row["C"].DoubleValue;
Console.WriteLine($"Product: {product}, Qty: {quantity}, Price: {price:C}");
}
// Apply a filter and re-export to a new CSV
workBook.SaveAsCsv("filtered_output.csv", ",");
using IronXL;
// Load an existing CSV file into a workbook
WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Iterate over rows and process data
foreach (var row in workSheet.Rows)
{
string product = row["A"].ToString();
int quantity = row["B"].IntValue;
decimal price = (decimal)row["C"].DoubleValue;
Console.WriteLine($"Product: {product}, Qty: {quantity}, Price: {price:C}");
}
// Apply a filter and re-export to a new CSV
workBook.SaveAsCsv("filtered_output.csv", ",");
Imports IronXL
' Load an existing CSV file into a workbook
Dim workBook As WorkBook = WorkBook.Load("sales_data.csv")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
' Iterate over rows and process data
For Each row In workSheet.Rows
Dim product As String = row("A").ToString()
Dim quantity As Integer = row("B").IntValue
Dim price As Decimal = CType(row("C").DoubleValue, Decimal)
Console.WriteLine($"Product: {product}, Qty: {quantity}, Price: {price:C}")
Next
' Apply a filter and re-export to a new CSV
workBook.SaveAsCsv("filtered_output.csv", ",")
IronXL을 통해 CSV 파일을 로드하면 워크시트 API에 전체 접근할 수 있으며, 여기에는 정렬, 필터링 및 수식 평가가 포함됩니다. 로드된 데이터를 Excel 파일로 저장할 수도 있으며, SaveAs를 사용하여 CSV를 한 번의 메서드 호출로 XLSX로 변환할 수 있습니다. 이는 보고서 생성 서비스를 구축할 때 일반적으로 필요합니다.
CSV 데이터를 내보내기 전에 어떻게 검증합니까?
내보내기 전에 데이터 검증을 통해 다운스트림 파이프라인 실패를 방지할 수 있습니다. IronXL은 셀 값 및 유형에 직접 접근할 수 있게 하여, null 체크, 숫자 범위 강제 적용, 잘못된 날짜 거부 등을 데이터 쓰기 전에 확인할 수 있습니다.
using IronXL;
WorkBook workBook = WorkBook.Load("input.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var errors = new List<string>();
for (int rowIdx = 1; rowIdx <= workSheet.RowCount; rowIdx++)
{
string productName = workSheet[$"A{rowIdx}"].StringValue;
double price = workSheet[$"C{rowIdx}"].DoubleValue;
if (string.IsNullOrWhiteSpace(productName))
errors.Add($"Row {rowIdx}: Product name is empty.");
if (price <= 0)
errors.Add($"Row {rowIdx}: Price must be greater than zero (found {price}).");
}
if (errors.Count == 0)
{
workBook.SaveAsCsv("validated_output.csv", ",");
Console.WriteLine("Export complete.");
}
else
{
foreach (var error in errors)
Console.WriteLine(error);
}
using IronXL;
WorkBook workBook = WorkBook.Load("input.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var errors = new List<string>();
for (int rowIdx = 1; rowIdx <= workSheet.RowCount; rowIdx++)
{
string productName = workSheet[$"A{rowIdx}"].StringValue;
double price = workSheet[$"C{rowIdx}"].DoubleValue;
if (string.IsNullOrWhiteSpace(productName))
errors.Add($"Row {rowIdx}: Product name is empty.");
if (price <= 0)
errors.Add($"Row {rowIdx}: Price must be greater than zero (found {price}).");
}
if (errors.Count == 0)
{
workBook.SaveAsCsv("validated_output.csv", ",");
Console.WriteLine("Export complete.");
}
else
{
foreach (var error in errors)
Console.WriteLine(error);
}
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("input.xlsx")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
Dim errors As New List(Of String)()
For rowIdx As Integer = 1 To workSheet.RowCount
Dim productName As String = workSheet($"A{rowIdx}").StringValue
Dim price As Double = workSheet($"C{rowIdx}").DoubleValue
If String.IsNullOrWhiteSpace(productName) Then
errors.Add($"Row {rowIdx}: Product name is empty.")
End If
If price <= 0 Then
errors.Add($"Row {rowIdx}: Price must be greater than zero (found {price}).")
End If
Next
If errors.Count = 0 Then
workBook.SaveAsCsv("validated_output.csv", ",")
Console.WriteLine("Export complete.")
Else
For Each error As String In errors
Console.WriteLine(error)
Next
End If
이 패턴은 잘못된 행이 조용히 내보내지는 대신 거부되고 기록되어야 하는 ETL 파이프라인에서 특히 유용합니다. IronXL의 RangeRow 및 Cell 개체의 셀 데이터 액세스 방법는 강력하게 유형화된 값을 반환하여 자동 유형 강제 오류의 위험을 줄여줍니다.
IronXL로 CSV 쓰기를 시작하려면 어떻게 해야 합니까?
IronXL은 CSV 읽기를 구문 분석의 난제로부터 직접적인 작업으로 변환합니다. CSV 기능을 Excel 워크북 지원, 수식 평가, 자동 타입 처리와 결합함으로써 여러 라이브러리를 관리하거나 수동으로 데이터를 변환하는 복잡성을 제거합니다.
무료 체험판에서는 모든 기능을 완전하게 사용할 수 있으며, 개발 중에는 라이선스 키가 필요하지 않습니다. 멀티시트 내보내기, 수식 평가 및 크로스 플랫폼 배포가 포함됩니다. 프로덕션 단계로 이동할 준비가 되면 라이선싱은 상용 사용을 커버하는 단일 개발자 계층에서 시작됩니다.
시작하기 위한 주요 자료:
- IronXL 문서 -- 전체 API 참고 및 사용 방법 가이드
- CSV에서 Excel로 변환 가이드 -- 형식 변환에 대한 자세한 안내
- DataTable 내보내기 튜토리얼 -- 데이터베이스 기반 내보내기 패턴
- 워크시트 범위 작업 -- 대용량 데이터 세트를 효율적으로 처리
- 문제 해결 가이드 -- 일반적인 통합 문제에 대한 해결책
프로덕션 준비가 된 CSV 워크플로우를 구축할 준비가 되셨습니까? 무료 체험판을 시작하여 5분 이내에 첫 번째 CSV 내보내기를 실행하세요.
자주 묻는 질문
IronXL 은 무엇에 사용되나요?
IronXL 은 Excel 파일 작업을 위해 설계된 .NET 라이브러리로, 개발자가 Excel 문서를 생성, 읽기 및 수정할 수 있을 뿐만 아니라 데이터 형식을 유지하고 복잡한 스프레드시트 시나리오를 관리하면서 CSV와 같은 다양한 형식으로 내보낼 수 있도록 지원합니다.
IronXL .NET 환경에서 CSV 파일 작성에 어떻게 도움을 줄 수 있나요?
IronXL Excel 통합 문서를 CSV 형식으로 내보내는 기능을 제공하며, 데이터 형식을 유지하고 복잡한 스프레드시트 시나리오를 효과적으로 처리합니다. 따라서 강력한 CSV 작성 솔루션이 필요한 .NET 개발자에게 이상적인 선택입니다.
개발자들이 CSV 작업에 IronXL 사용해야 하는 이유는 무엇일까요?
개발자는 IronXL 뛰어난 CSV 처리 솔루션으로 Excel 파일을 CSV로 원활하게 내보내고, 대규모 데이터 세트를 처리하며, 데이터 형식의 무결성을 유지하는 기능을 고려해야 합니다. IronXL은 .NET 애플리케이션에서 CSV 작업을 위한 탁월한 솔루션을 제공합니다.
IronXL 스프레드시트 관리 도구로 사용하면 어떤 이점이 있나요?
IronXL 스프레드시트 관리 도구로 사용하면 Excel 문서를 쉽게 조작할 수 있고, CSV와 같은 다양한 내보내기 형식을 지원하며, .NET 애플리케이션에서 복잡한 데이터 구조와 대규모 데이터 세트를 효율적으로 처리할 수 있다는 장점이 있습니다.
IronXL 대용량 Excel 파일을 CSV로 내보낼 때 문제없이 처리할 수 있나요?
네, IronXL 은 대용량 Excel 파일을 효율적으로 처리하도록 설계되어 있어 개발자가 성능이나 데이터 무결성을 손상시키지 않고 방대한 양의 데이터를 CSV로 내보낼 수 있습니다.
IronXL CSV로 내보낼 때 데이터 유형을 어떻게 유지합니까?
IronXL 원본 데이터 유형과 구조를 유지하면서 Excel 데이터를 CSV 형식으로 정확하게 변환하여 데이터 유형을 보존합니다. 이는 정밀한 데이터 처리가 필요한 애플리케이션에 매우 중요합니다.
IronXL 복잡한 스프레드시트 시나리오에 적합한가요?
IronXL 복잡한 스프레드시트 시나리오에 매우 적합하며, 정교한 Excel 문서를 관리하고 조작할 수 있는 고급 기능을 제공하고 데이터를 CSV 또는 기타 형식으로 정확하게 내보낼 수 있도록 보장합니다.



