IronXLを使ってC#でSQLデータをExcelにエクスポートする方法
SQL ServerからMicrosoft Excelへのデータエクスポートは、レポートシステム、データ分析ツール、ビジネスアプリケーションを構築する.NET開発者にとって一般的な要件です。 このチュートリアルでは、IronXLを使用してC#でSQLデータをExcelにエクスポートする方法を示します。
無料トライアルを開始して、以下のコード例に従ってください。
SQLサーバーのデータベースからデータをエクスポートする最良の方法は何ですか?
SQL ServerからExcelファイルにデータをエクスポートする最も効率的な方法は、次の3つのステップです。データベース接続を確立し、DataTableにデータを取得し、IronXLを使用してExcelワークシートにデータを書き込みます。 Microsoft Interopソリューションとは異なり、IronXL.Excelは独立して動作し、大規模なデータセットを優れたパフォーマンスで処理します。
どのように SQL Server に接続し、データを取得しますか?
SQL データをエクスポートする前に、接続を確立し、DataTableを埋める SQL クエリを実行する必要があります。 接続文字列には、データへのアクセスに必要なSQL Serverデータベースの認証情報とサーバー情報が含まれています。
Visual Studioプロジェクトで以下の名前空間をインポートする必要があります:
using IronXL;
using System.Data;
using System.Data.SqlClient;
// Define connection string for SQL Server
string connectionString = @"Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True";
// SQL query to retrieve data from SQL Server table
string sql = "SELECT * FROM Customers";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Use SqlDataAdapter to fill DataTable with query results
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dt = new DataTable();
adapter.Fill(dt);
// Create new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("CustomerData");
// Export DataTable to Excel worksheet with column names
int rowIndex = 1;
// Write column headers from DataTable
for (int j = 0; j < dt.Columns.Count; j++)
{
workSheet.SetCellValue(0, j, dt.Columns[j].ColumnName);
}
// Fill worksheet with data values
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
string cellValue = dt.Rows[i][j].ToString();
workSheet.SetCellValue(rowIndex, j, cellValue);
}
rowIndex++;
}
// Save Excel file in xlsx format
workBook.SaveAs("CustomerExport.xlsx");
}using IronXL;
using System.Data;
using System.Data.SqlClient;
// Define connection string for SQL Server
string connectionString = @"Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True";
// SQL query to retrieve data from SQL Server table
string sql = "SELECT * FROM Customers";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Use SqlDataAdapter to fill DataTable with query results
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dt = new DataTable();
adapter.Fill(dt);
// Create new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("CustomerData");
// Export DataTable to Excel worksheet with column names
int rowIndex = 1;
// Write column headers from DataTable
for (int j = 0; j < dt.Columns.Count; j++)
{
workSheet.SetCellValue(0, j, dt.Columns[j].ColumnName);
}
// Fill worksheet with data values
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
string cellValue = dt.Rows[i][j].ToString();
workSheet.SetCellValue(rowIndex, j, cellValue);
}
rowIndex++;
}
// Save Excel file in xlsx format
workBook.SaveAs("CustomerExport.xlsx");
}出力
How to Export SQL Data to Excel Using C# with IronXL: Image 1 - Generated Excel file.
このコードは、SQL Serverのテーブル構造から適切な形式の列ヘッダーを持つExcelファイルを作成します。 DataTable dtは、クエリ結果を格納し、Excelシートの各セルに体系的に書き込まれます。 次のコードは、ワークシートのセルに値を入力するaddメソッド・パターンを示しています。 IronXLはMicrosoft Officeアプリケーションとの互換性を最大限に高めるため、xlsとxlsxの両フォーマットをサポートしています。
どのようにASP.NETエクスポートボタンを使用してデータをエクスポートできますか?
Webアプリケーションの場合、通常、ユーザーがエクスポートボタンをクリックすると、エクスポートが開始されます。 次のコードは、ボタンをクリックしたイベントを処理し、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";
try
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
// Execute SQL query to get data from SQL server
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);
// Create Excel workbook from DataSet - each table becomes a sheet
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
// Convert to byte array for download
byte[] fileBytes = workBook.ToByteArray();
string filename = "OrdersExport.xlsx";
// Set response headers for file download
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=" + filename);
Response.BinaryWrite(fileBytes);
Response.End();
}
}
catch (Exception ex)
{
// Handle any errors during export
Response.Write("Export error: " + ex.Message);
}
}
}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";
try
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
// Execute SQL query to get data from SQL server
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);
// Create Excel workbook from DataSet - each table becomes a sheet
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
// Convert to byte array for download
byte[] fileBytes = workBook.ToByteArray();
string filename = "OrdersExport.xlsx";
// Set response headers for file download
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=" + filename);
Response.BinaryWrite(fileBytes);
Response.End();
}
}
catch (Exception ex)
{
// Handle any errors during export
Response.Write("Export error: " + ex.Message);
}
}
}エクスポート ボタンの例
How to Export SQL Data to Excel Using C# with IronXL: Image 2 - Example export button ui.
出力
How to Export SQL Data to Excel Using C# with IronXL: Image 3 - Generated file.
object senderとEventArgs eパラメータは、ASP.NETイベントハンドラの標準です。 Microsoft Interopがobject misValueを必要とするのとは異なり、IronXLはよりクリーンなAPIを使用しています。 ユーザがエクスポートボタンをクリックすると、このプライベートボイドメソッドがデータベースクエリを実行し、Excelドキュメントを作成し、ブラウザを介してファイルのダウンロードをトリガします。
どのようにデータをインポートし、列ヘッダー付きの Excel ファイルを作成しますか?
IronXLはExcelファイルの作成とデータのインポートを効率的に行う複数の方法を提供します。 LoadWorkSheetsFromDataSet メソッドは DataTable コレクションを受け入れ、Excel ワークシートのヘッダーとして列名を自動的に保持します。 このアプローチは、System.DataオブジェクトとMicrosoft SQL Serverでシームレスに動作します。
using IronXL;
using System.Data;
using System.Data.SqlClient;
// Connection to SQL database
string connectionString = @"Data Source=.;Initial Catalog=Inventory;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Query multiple tables from database
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");
// Create new workbook and load all tables
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
// Save as xlsx file
workBook.SaveAs("InventoryReport.xlsx");
}using IronXL;
using System.Data;
using System.Data.SqlClient;
// Connection to SQL database
string connectionString = @"Data Source=.;Initial Catalog=Inventory;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Query multiple tables from database
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");
// Create new workbook and load all tables
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
// Save as xlsx file
workBook.SaveAs("InventoryReport.xlsx");
}出力
How to Export SQL Data to Excel Using C# with IronXL: Image 4 - Generated file with column headersHow to Export SQL Data to Excel Using C# with IronXL: Image 4 - Generated file with column headers.
このアプローチでは、複数のSQL Serverテーブルを効率的に処理し、1つのワークブック内に個別のワークシート・タブを作成します。 ストアドプロシージャを使用するアプリケーションでは、CommandType.StoredProcedureを使用して、インラインSQLクエリをプロシージャ呼び出しに置き換えるだけです。
HTMLマークアップを使用したWebアプリケーションについてはどうですか?
HTMLマークアップがボタンやデータグリッドで構成されているASP.NETアプリケーションでは、IronXLはシームレスに統合されます。 あなたのページのHTMLマークアップは標準的なウェブコントロールで構成され、サーバーサイドのエクスポート操作をトリガーし、IronXLはMicrosoft Officeに依存することなくすべてのExcel生成を処理します。
DataSetおよびDataTableオブジェクトのエクスポートに関する詳細なガイダンスについては、IronXLのドキュメントをご覧ください。
結論
C#を使用してSQLデータをExcelにエクスポートするのは、IronXLを使えば簡単です。 このライブラリは、DataTable、DataSet、およびデータベースの直接統合のための堅牢なサポートを提供しながら、複雑なInterop依存関係を排除します。 コンソールアプリケーションやファイルダウンロード機能を持つウェブベースのレポートシステムを構築する場合でも、IronXLは信頼性の高いExcelファイル生成を提供します。
Purchase a license for production deployment, or continue exploring with a free trial to test the full capabilities of this Excel library in your .NET projects.
よくある質問
C#を使用してSQLデータをExcelにエクスポートするにはどうすればよいですか?
強力なExcelライブラリであるIronXLを活用することで、C#を使ってSQLデータをExcelにエクスポートすることができます。これはプロセスを簡素化し、Microsoft Officeのインストールを必要としません。
IronXLを使ってSQLデータをエクスポートするための前提条件は何ですか?
SQLデータのエクスポートにIronXLを使用するには、C#の基本的な理解、SQLサーバーへのアクセス、開発環境にインストールされたIronXLライブラリが必要です。
IronXLでSQLデータをExcelにエクスポートするにはMicrosoft Officeがインストールされている必要がありますか?
IronXLでは、Microsoft OfficeをインストールしなくてもSQLデータをExcelにエクスポートすることができます。
SQLデータをExcelにエクスポートする際、IronXLは大きなデータセットを扱えますか?
IronXLは大規模なデータセットを効率的に処理できるため、SQLの膨大なデータをExcelにエクスポートするのに適しています。
IronXLはすべてのバージョンのSQL Serverと互換性がありますか?
IronXLは様々なバージョンのSQL Serverで動作するように設計されており、異なる環境での互換性と使いやすさを保証します。
SQLデータをExcelにエクスポートするには、どのような使用例がありますか?
SQLデータをExcelにエクスポートすることは、レポーティングシステム、データ分析ツール、ビジネスアプリケーションを構築する際に有用です。
IronXLはExcelファイルのフォーマットオプションをサポートしていますか?
IronXLには様々なフォーマットオプションがあり、エクスポートしたExcelファイルの外観や構造をカスタマイズすることができます。
IronXLはSQLデータをExcelにエクスポートするプロセスをどのように簡素化しますか?
IronXLは、SQL Serverへの接続、DataTableレコードの取得、Excelファイルの生成など、複雑なセットアップや追加ソフトウェアを必要としない直感的な方法を提供することで、エクスポートプロセスを簡素化します。








