푸터 콘텐츠로 바로가기
IRONXL 사용하여

IronXL 사용하여 C#에서 SQL 데이터를 Excel로 내보내기

SQL Server에서 Microsoft Excel로 데이터를 내보내는 것은 보고 시스템, 데이터 분석 도구 및 비즈니스 응용 프로그램을 구축하는 .NET 개발자에게 일반적인 작업입니다. 이 튜토리얼은 IronXL을 사용하여 C#으로 SQL 데이터를 Excel로 내보내는 방법을 보여 주며, Microsoft Office를 설치할 필요 없이 전체 프로세스를 처리하는 .NET Excel 라이브러리입니다.

아래 코드 예제를 따라가기 위해 무료 체험판을 시작하십시오.

지금 바로 IronXL으로 시작하세요.
green arrow pointer

SQL 데이터 내보내기를 위한 IronXL을 어떻게 설치합니까?

코드를 작성하기 전에 IronXL을 프로젝트에 추가해야 합니다. 가장 빠른 방법은 Visual Studio의 NuGet 패키지 관리자 콘솔을 통해 진행하는 것입니다:

Install-Package IronXl.Excel
Install-Package IronXl.Excel
SHELL

.NET CLI를 사용하세요:

dotnet add package IronXl.Excel
dotnet add package IronXl.Excel
SHELL

설치 후, 파일 상단에 필요한 네임스페이스를 추가하십시오. .NET 10의 최상위 수준 문서를 사용하여 설정은 다음과 같습니다:

using IronXL;
using System.Data;
using System.Data.SqlClient;
using IronXL;
using System.Data;
using System.Data.SqlClient;
$vbLabelText   $csharpLabel

IronXL은 .NET Standard 2.0 이상을 대상으로 하여 추가 구성 없이 .NET 10, .NET Framework, ASP.NET Core 및 Blazor 프로젝트와 함께 작동합니다. NuGet에서 패키지를 찾을 수 있습니다.

SQL Server 데이터베이스에서 데이터를 내보내는 가장 좋은 방법은 무엇입니까?

SQL Server에서 Excel 파일로 데이터를 내보내는 가장 효율적인 접근 방식은 세 단계로 구성됩니다. 데이터베이스 연결을 설정하고, 데이터를 DataTable으로 가져온 후, IronXL을 사용하여 Excel 워크시트에 데이터를 기록합니다. 마이크로소프트 상호 운용성 솔루션과 달리, IronXL은 독립적으로 작동하며 COM 인터옵 오버헤드로 인한 성능 병목 없이 대량의 데이터를 처리합니다.

핵심 패턴은 간단합니다. SqlDataAdapterMicrosoft의 ADO.NET 데이터 접근 프레임워크의 일부이며, .NET 1.0 이후 관계형 데이터베이스에서 DataTable 객체를 채우는 표준 방법이었습니다:

  1. 연결 문자열을 사용하여 SqlConnection을 여십시오.
  2. SqlDataAdapter을 사용하여 DataTable 또는 DataSet을 채우십시오.
  3. IronXL 메서드를 호출하여 워크북을 만들고 워크시트 셀을 채웁니다
  4. 워크북을 .xlsx 또는 .xls로 저장하십시오.

이 접근 방식은 SQL Server 2012 이후뿐만 아니라 Azure SQL Database, Amazon RDS for SQL Server 및 모든 ADO.NET 호환 데이터 소스와 호환됩니다. 이 패턴은 콘솔 응용 프로그램이나 웹 기반 보고 도구와 작업할 때 동일하게 적용됩니다.

SQL Server에 연결하고 데이터를 검색하는 방법은 무엇입니까?

SQL 데이터를 내보내기 전에 연결을 설정하고 SQL 쿼리를 실행하여 DataTable을 채워야 합니다. 연결 문자열에는 데이터를 액세스하기 위해 필요한 SQL Server 데이터베이스 자격 증명 및 서버 정보가 포함되어 있습니다.

다음 예는 아니요rthwind Customers 테이블을 쿼리하고 IronXL의 셀-쓰기 API를 사용하여 각 행을 Excel 워크시트에 작성합니다:

using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=아니요rthwind;Integrated Security=True";
string sql = "SELECT * FROM Customers";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Customers");

// Write column headers
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
}

// Write data rows
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("CustomerExport.xlsx");
using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=아니요rthwind;Integrated Security=True";
string sql = "SELECT * FROM Customers";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Customers");

// Write column headers
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
}

// Write data rows
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("CustomerExport.xlsx");
$vbLabelText   $csharpLabel

산출

C#와 IronXL을 사용하여 SQL 데이터를 Excel로 내보내는 방법: 이미지 1 - 생성된 Excel 파일

이 코드는 SQL Server 테이블 구조에서 유도된 적절한 형식의 열 헤더로 Excel 파일을 생성합니다. DataTable dt은 쿼리 결과를 저장하며, 이후 0 기반 행 및 열 인덱스를 사용하여 각 셀에 체계적으로 작성됩니다. IronXL은 Microsoft Office 응용 프로그램과의 광범위한 호환성을 위해 .xls.xlsx 형식을 모두 지원합니다.

SQL 테이블에 DateTime 또는 숫자 열이 포함된 경우, SetCellValue을 호출하기 전에 셀 값을 적절히 캐스트하십시오. 숫자 유형을 직접 전달하면 Excel 데이터 유형이 보존되고 내보낸 열에서 정렬 및 공식 계산을 활성화합니다.

LoadWorkSheetsFromDataSet을 사용하여 여러 테이블을 내보내는 방법은?

보고서에 여러 SQL 테이블의 데이터가 필요한 경우, 예를 들어 제품과 범주, DataSet에 로드하여 IronXL을 사용하여 각 테이블에 대해 자동으로 하나의 워크시트를 생성할 수 있습니다. 이는 DataSet 또는 DataTable을 Excel로 내보내는 가장 간결한 접근 방법입니다.

using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=.;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter productsAdapter = new SqlDataAdapter("SELECT * FROM Products", connection);
SqlDataAdapter categoriesAdapter = new SqlDataAdapter("SELECT * FROM Categories", connection);

DataSet dataSet = new DataSet();
productsAdapter.Fill(dataSet, "Products");
categoriesAdapter.Fill(dataSet, "Categories");

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

workBook.SaveAs("InventoryReport.xlsx");
using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=.;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter productsAdapter = new SqlDataAdapter("SELECT * FROM Products", connection);
SqlDataAdapter categoriesAdapter = new SqlDataAdapter("SELECT * FROM Categories", connection);

DataSet dataSet = new DataSet();
productsAdapter.Fill(dataSet, "Products");
categoriesAdapter.Fill(dataSet, "Categories");

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

workBook.SaveAs("InventoryReport.xlsx");
$vbLabelText   $csharpLabel

산출

C#와 IronXL을 사용하여 SQL 데이터를 Excel로 내보내는 방법: 이미지 4 - 열 헤더가 있는 생성된 파일

LoadWorkSheetsFromDataSetDataSet 내의 각 DataTableTableName 속성을 읽고, 일치하는 워크시트 탭을 생성합니다. DataTable의 열 이름은 각 시트의 헤더 행이 됩니다. 이 방법은 여러 결과 집합을 반환하는 저장 프로시저에 특히 유용합니다. 여러 SqlDataAdapter 호출을 사용하여 DataSet을 채운 다음, 한 단계로 모든 것을 내보낼 수 있기 때문입니다.

사용자 정의 서식이 있는 Excel 파일을 프로그래밍 방식으로 생성해야 하는 응용 프로그램의 경우, LoadWorkSheetsFromDataSet을 호출한 후에도 개별 워크시트에 접근하여 스타일, 열 너비 또는 공식을 적용한 후 저장할 수 있습니다.

ASP.NET 내보내기 버튼을 사용하여 데이터를 내보내는 방법은?

웹 응용 프로그램에서 사용자가 버튼을 클릭할 때 일반적으로 내보내기를 트리거합니다. 다음 ASP.NET Web Forms 예제는 버튼 클릭 이벤트를 처리하고, SQL 쿼리에서 Excel 워크북을 생성하며 Response.AddHeader을 사용하여 다운로드로 파일을 브라우저에 보내는 방법을 보여줍니다.

using IronXL;
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Web.UI;

public partial class ExportPage : Page
{
    private void ExportButton_Click(object sender, EventArgs e)
    {
        string connectionString = "Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";

        using SqlConnection connection = new SqlConnection(connectionString);
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
        DataSet dataSet = new DataSet();
        adapter.Fill(dataSet);

        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

        byte[] fileBytes = workBook.ToByteArray();
        string filename = "OrdersExport.xlsx";

        Response.Clear();
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;filename=" + filename);
        Response.BinaryWrite(fileBytes);
        Response.End();
    }
}
using IronXL;
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Web.UI;

public partial class ExportPage : Page
{
    private void ExportButton_Click(object sender, EventArgs e)
    {
        string connectionString = "Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";

        using SqlConnection connection = new SqlConnection(connectionString);
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
        DataSet dataSet = new DataSet();
        adapter.Fill(dataSet);

        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

        byte[] fileBytes = workBook.ToByteArray();
        string filename = "OrdersExport.xlsx";

        Response.Clear();
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;filename=" + filename);
        Response.BinaryWrite(fileBytes);
        Response.End();
    }
}
$vbLabelText   $csharpLabel

예시 내보내기 버튼

C#와 IronXL을 사용하여 SQL 데이터를 Excel로 내보내는 방법: 이미지 2 - 예제 내보내기 버튼 UI

산출

C#와 IronXL을 사용하여 SQL 데이터를 Excel로 내보내는 방법: 이미지 3 - 생성된 파일

ToByteArray() 메서드는 전체 워크북을 메모리의 바이트 배열로 변환한 후, 이를 HTTP 응답 스트림에 직접 기록합니다. 이렇게 하면 임시 파일을 디스크에 쓰는 것을 피할 수 있습니다. 서버에 object misValue 자리 표시자 및 설치된 Office 라이선스가 필요한 마이크로소프트 상호 운용성과 달리, IronXL은 외부 종속성 없이 관리 코드로 전부 실행됩니다.

ASP.NET Core 및 Razor Pages 프로젝트의 경우, 컨트롤러 작업에서 Response.BinaryWritereturn File(fileBytes, contentType, filename)으로 대체하십시오. ASP.NET Core를 통한 Excel 내보내기 패턴은 동일한 워크북-바이트 배열 접근 방식을 따릅니다.

내보낸 Excel 파일에 서식 및 열 헤더를 추가하는 방법은?

원시 SQL 내보내기는 종종 최종 사용자와 공유하기 전에 표현 개선이 필요합니다. IronXL은 데이터가 워크시트에 쓰여진 후의 셀 스타일, 열 너비 및 숫자 형식에 대한 제어를 제공합니다. 다음 예시는 헤더 행을 굵게 만들고 열 너비를 자동 맞춤하는 방법을 보여줍니다:

using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter("SELECT OrderID, CustomerID, OrderDate, Total FROM Orders", connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Orders");

// Write and style header row
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
    workSheet[0, col].Style.Font.Bold = true;
    workSheet[0, col].Style.Font.Height = 12;
}

// Write data rows with type-aware value assignment
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        object value = dt.Rows[row][col];
        if (value is DateTime date)
            workSheet.SetCellValue(row + 1, col, date.ToString("yyyy-MM-dd"));
        else if (value is decimal || value is double || value is int)
            workSheet.SetCellValue(row + 1, col, Convert.ToDouble(value));
        else
            workSheet.SetCellValue(row + 1, col, value.ToString());
    }
}

workBook.SaveAs("FormattedOrdersExport.xlsx");
using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter("SELECT OrderID, CustomerID, OrderDate, Total FROM Orders", connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Orders");

// Write and style header row
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
    workSheet[0, col].Style.Font.Bold = true;
    workSheet[0, col].Style.Font.Height = 12;
}

// Write data rows with type-aware value assignment
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        object value = dt.Rows[row][col];
        if (value is DateTime date)
            workSheet.SetCellValue(row + 1, col, date.ToString("yyyy-MM-dd"));
        else if (value is decimal || value is double || value is int)
            workSheet.SetCellValue(row + 1, col, Convert.ToDouble(value));
        else
            workSheet.SetCellValue(row + 1, col, value.ToString());
    }
}

workBook.SaveAs("FormattedOrdersExport.xlsx");
$vbLabelText   $csharpLabel

굵은 텍스트와 더 큰 글꼴로 헤더 행을 스타일링하면 내보낸 보고서를 Excel에서 쉽게 읽을 수 있습니다. 총계나 건수와 같은 숫자 열의 경우, 문자열 대신 double 값을 전달하면 Excel의 기본 정렬 및 집계 기능이 내보낸 데이터에 대해 올바르게 작동할 수 있습니다.

IronXL 셀 서식 문서에서 셀 경계, 배경색 및 숫자 형식 마스크를 포함한 전체 서식 옵션을 탐색할 수 있습니다.

대규모 SQL 데이터세트를 효율적으로 처리하는 방법은?

수만 줄의 행이 있는 테이블의 경우 메모리 관리가 중요해집니다. 전체 결과 셋을 DataTable에 로딩한 후 Excel에 작성하는 방식은 대부분의 보고서에 적합하지만, 매우 큰 규모의 내보내기에 대해서는 행을 배치별로 처리하거나 직접 SqlDataReader을 사용할 수 있습니다.

대규모 내보내기를 처리할 때는 다음 전략을 고려합니다:

  • SQL OFFSET/FETCH를 사용한 페이지 분할: 큰 내보내기를 여러 워크시트로 나누고 각 워크시트에 한 페이지의 결과를 포함합니다. 이는 Excel에서 개별 시트 크기를 관리가능하게 유지합니다.
  • 디스크에 스트림: ToByteArray()로 모든 것을 메모리에 보관하는 대신, 각 배치 후 workBook.SaveAs(filePath)을 호출하십시오.
  • 선택된 열 제한: SQL Server에서 전송되는 데이터 양을 줄이기 위해 SELECT * 대신 명시적인 열 목록을 SELECT 명령문에 사용하십시오.

C#에서 DataTable을 Excel로 내보내는 가장 빠른 방법에 대한 지침은 IronXL 블로그에 다양한 접근 방식과 메모리 프로필을 비교하는 전용 벤치마크 기사가 있습니다.

WorkBook.LoadWorkSheetsFromDataSet 방법은 행 반복을 내부적으로 처리하므로 중간 크기의 DataSet 객체에 특히 효율적입니다. DataTable에서 Excel 내보내기 시나리오에 대해 이 메서드는 상용구 코드를 줄이고 대량 쓰기에 최적화되어 있습니다.

Excel에서 SQL Server로 데이터를 다시 가져오는 방법은?

내보내기 워크플로는 많은 보고 응용프로그램에서 이야기의 절반에 불과합니다. 사용자가 템플릿을 다운로드하고 데이터를 채우고 SQL Server에 다시 업로드 할 수 있도록 허용해야 할 수도 있습니다. IronXL은 이 양방향 워크플로를 간단하게 만듭니다.

Excel 데이터를 데이터베이스에 가져오기 위해 업로드된 파일을 WorkBook.Load(filePath)로 로드하고, 워크시트 행을 반복하고, 매개변수화된 SqlCommand를 사용하여 각 행을 삽입하십시오.

using IronXL;
using System.Data.SqlClient;

WorkBook workBook = WorkBook.Load("UploadedData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

string connectionString = "Data Source=localhost;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

// Skip header row, start at row index 1
for (int row = 1; row <= sheet.RowCount; row++)
{
    string productName = sheet[row, 0].StringValue;
    int quantity = (int)sheet[row, 1].DoubleValue;
    decimal price = (decimal)sheet[row, 2].DoubleValue;

    using SqlCommand cmd = new SqlCommand(
        "INSERT INTO Products (Name, Quantity, Price) VALUES (@name, @qty, @price)",
        connection);
    cmd.Parameters.AddWithValue("@name", productName);
    cmd.Parameters.AddWithValue("@qty", quantity);
    cmd.Parameters.AddWithValue("@price", price);
    cmd.Execute아니요nQuery();
}
using IronXL;
using System.Data.SqlClient;

WorkBook workBook = WorkBook.Load("UploadedData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

string connectionString = "Data Source=localhost;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

// Skip header row, start at row index 1
for (int row = 1; row <= sheet.RowCount; row++)
{
    string productName = sheet[row, 0].StringValue;
    int quantity = (int)sheet[row, 1].DoubleValue;
    decimal price = (decimal)sheet[row, 2].DoubleValue;

    using SqlCommand cmd = new SqlCommand(
        "INSERT INTO Products (Name, Quantity, Price) VALUES (@name, @qty, @price)",
        connection);
    cmd.Parameters.AddWithValue("@name", productName);
    cmd.Parameters.AddWithValue("@qty", quantity);
    cmd.Parameters.AddWithValue("@price", price);
    cmd.Execute아니요nQuery();
}
$vbLabelText   $csharpLabel

매개변수화된 쿼리는 사용자가 제공한 Excel 데이터를 읽을 때 SQL 주입으로부터 보호합니다. Microsoft Learn의 SqlCommand 문서는 모든 사용 가능한 오버로드 및 매개변수 바인딩 패턴을 제공합니다. 삽입하기 전에 항상 셀 값을 검증하십시오 -- 빈 문자열, 범위를 벗어난 숫자 및 SQL Server 테이블의 제약 위반을 일으킬 수 있는 예상치 못한 데이터 유형을 확인합니다.

반대 방향의 경우, IronXL도 데이터 소스가 .xlsx 파일 대신 쉼표로 구분된 출력을 생성하는 시나리오에 대해 C#에서 CSV 파일을 읽는 것을 지원합니다.

IronXL을 다른 내보내기 접근 방식과 비교하는 방법은?

.NET에서 SQL 데이터를 Excel로 내보내는 여러 가지 접근 방식이 있습니다. 아래 표는 주요 트레이드오프를 요약합니다:

.NET의 SQL-Excel 내보내기 접근 방식 -- 기능 비교
접근 방식 Office 필수 DataSet 지원 서식 지정 서버 안전
IronXL 아니요 예 (내장) 전체 스타일, 수식
마이크로소프트 상호 운용성 수동 반복 COM을 통해 전체 지원 아니오 (COM 서버)
EPPlus 아니요 수동 반복 광범위함
NPOI 아니요 수동 반복 좋은
CSV 출력 아니요 수동 없음

마이크로소프트 상호 운용성은 서버에 Office가 설치되어 있어야 하며, 서버 사이드 웹 응용프로그램에서는 지원되지 않습니다. IronXL, EPPlus, 및 NPOI은 모두 Office 없이 작동합니다. IronXL의 이점은 LoadWorkSheetsFromDataSet을 통한 일류의 DataSetDataTable 지원으로, 다른 라이브러리에서 수동 행 반복에 비해 내보내기 코드를 몇 줄로 줄일 수 있습니다.

상세한 비교 사항은 Microsoft Office Interop 대안 문서를 참조하세요.

다음 단계는 무엇입니까?

IronXL을 사용하여 C#에서 SQL 데이터를 Excel로 내보내는 것이 간편해집니다. 이 라이브러리는 복잡한 Interop 종속성을 제거하면서 강력한 DataTable, DataSet, 및 직접 데이터베이스 통합에 대한 지원을 제공합니다. 콘솔 애플리케이션이나 파일 다운로드 기능이 포함된 웹 기반 보고 시스템을 구축하는 경우, IronXL은 모든 .NET 10 프로젝트 유형에서 신뢰할 수 있는 Excel 파일 생성을 제공합니다.

이 토대 위에서 계속 구축하려면 다음 관련 리소스를 탐색하세요:

라이선스를 구입하여 프로덕션에 배포하거나, 무료 체험판을 통해 .NET 프로젝트에서 이 Excel 라이브러리의 전체 기능을 테스트해보세요.

자주 묻는 질문

C#을 사용하여 SQL 데이터를 Excel로 내보내는 방법은 무엇인가요?

IronXL 사용하면 C#으로 SQL 데이터를 Excel로 내보낼 수 있습니다. SqlConnection과 SqlDataAdapter를 사용하여 SQL Server에 연결하고, DataTable을 채운 다음, IronXL 사용하여 통합 문서를 만들고 데이터 행을 기록합니다. IronXL Microsoft Office 설치가 필요하지 않습니다.

IronXL 사용하여 SQL 데이터를 내보내기 위한 필수 조건은 무엇입니까?

IronXL 사용하여 SQL 데이터를 내보내려면 .NET 프로젝트(프레임워크, 코어 또는 .NET 10 이상), SQL Server 데이터베이스에 대한 액세스 권한, 그리고 Install-Package IronXL .Excel 명령어를 통해 설치된 IronXL NuGet 패키지가 필요합니다.

IronXL 사용하여 SQL 데이터를 Excel로 내보내려면 Microsoft Office가 설치되어 있어야 합니까?

아니요, IronXL 사용하면 시스템이나 서버에 Microsoft Office가 설치되어 있지 않아도 SQL 데이터를 Excel로 내보낼 수 있습니다.

IronXL SQL 데이터를 Excel로 내보낼 때 대규모 데이터 세트를 처리할 수 있습니까?

네, IronXL 대규모 데이터 세트를 효율적으로 처리합니다. 매우 큰 데이터를 내보낼 때는 SQL OFFSET/FETCH를 사용하여 페이지를 나누고, ToByteArray 대신 SaveAs를 사용하여 디스크에 저장하고, SQL 쿼리에서 선택할 열을 제한하십시오.

SQL 테이블 여러 개를 각각 별도의 엑셀 시트로 내보내려면 어떻게 해야 하나요?

여러 SqlDataAdapter 호출로 채워진 DataSet을 사용하여 WorkBook.LoadWorkSheetsFromDataSet 메서드를 호출하십시오. IronXL DataTable당 하나의 워크시트를 생성하고 각 탭의 이름을 DataTable.TableName 속성으로 지정합니다.

ASP.NET 에서 엑셀 파일 다운로드를 어떻게 실행할 수 있나요?

파일을 바이트 배열로 가져오려면 workBook.ToByteArray()를 호출한 다음, 올바른 Content-Type 및 Content-Disposition 헤더와 함께 HTTP 응답에 작성합니다. ASP.NET Core 에서는 컨트롤러에서 File(fileBytes, contentType, filename)을 반환합니다.

IronXL 사용하여 Excel 데이터를 SQL Server로 다시 가져올 수 있습니까?

예. WorkBook.Load를 사용하여 Excel 파일을 불러오고, IronXL의 인덱서를 사용하여 워크시트 행을 반복한 다음, SQL 인젝션 공격을 방지하기 위해 매개변수화된 SqlCommand를 사용하여 각 행을 삽입하십시오.

IronXL SQL 데이터 내보내기 측면에서 Microsoft Interop과 어떻게 비교됩니까?

IronXL 서버에 Office가 설치되어 있지 않아도 실행되며, 관리 코드 환경에서 작동하고, LoadWorkSheetsFromDataSet 함수를 사용하여 DataSet 내보내기를 기본적으로 지원합니다. Microsoft Interop은 COM 서버가 필요하며 웹 서버 환경에서는 안정적으로 실행되지 않습니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me