フッターコンテンツにスキップ
IRONXLの使用

C#で大量のデータをDataTableからExcelにエクスポートする方法

この記事では、大量のデータをDataTableからExcelシートに抽出する最も効果的なアプローチを紹介します。

IronXL

IronXLは、Excelファイルをプログラムで読み書き、編集するためのシンプルで直感的なインターフェースを提供する最先端のC#ライブラリです。 これは、開発者やユーザーにデータを簡単に操作する力を与え、Excelスプレッドシートの潜在能力を完全に引き出すツールです。 それは、Excelのより反復的で時間のかかるタスクを処理するために設計されています。 財務モデル、販売レポート、あるいはデータの視覚化プロジェクトに取り組んでいるかどうかに関わらず、IronXLは迅速かつ効率的に仕事を完了するのに役立ちます。

IronXLを使用すると、ワークフローを効率化し、エラーを減らし、Excelの自動化を次のレベルに引き上げることができます。 IronXLを使用すると、MSファイルやライブラリにインターフェースを必要とせずに、Excelデータと直接対話することができます。 Developers can manage elements like cells, ranges, and multiple sheets through the IronXL API. IronXLは、WorkSheet APIの詳細なドキュメンテーションも提供しています。

IronXLを活用することで、開発者は大量のデータをDataTableからExcelスプレッドシートに簡単にエクスポートしながら、アプリケーションのパフォーマンスを維持し、エラーの可能性を最小限に抑えることができます。 C#でDataTableからExcelにデータをエクスポートする方法を理解すると、開発者はアプリケーション内のデータを効果的に管理し、ユーザー体験を向上させることができます。

この記事では、DataTableからExcelファイルに大量のデータをエクスポートする方法について説明します。Visual Studioでの.NETプロジェクトの作成から、IronXLライブラリのインストール、コードサンプルまでのステップバイステップガイドを提供します。 IronXLで、データの可能性を最大限に引き出し、創造力を解放する準備をしましょう。

1. 必要条件

データベースからExcelファイルを書き出すためにIronXLライブラリを利用するには、いくつかの事前条件を満たす必要があります。 これには以下が含まれます:

  • Visual Studioがコンピュータにインストールされている必要があり、C#プロジェクトを作成します。
  • ASP.NETがC#プロジェクトを作成する前にシステムにインストールされている必要があります。
  • IronXLライブラリがシステムにインストールされている必要があります。 Visual StudioのNuGetパッケージマネージャーからIronXL NuGetパッケージをダウンロードすることで入手できます。
  • SQLもVisual Studioにインストールされている必要があります。 理想的には、データをエクスポートするためにデータベースにテーブルがあるべきです。 このようなテーブルを作成し、その構造を定義するためにSQLコマンドCREATE TABLEを使用できます。

2. Visual Studioでの新規プロジェクト作成

Excel関連の操作を実行するためにIronXLライブラリを利用する前に、まずVisual Studioで.NETプロジェクトを作成する必要があります。 Visual Studioのどのバージョンでも互換性がありますが、最新バージョンを使用することをお勧めします。

Windows FormsやASP.NETなど、要件に基づいてさまざまなプロジェクトテンプレートを選択できます。

このチュートリアルでは、IronXLを使用して作業する方法を示すためにコンソールアプリケーションプロジェクトテンプレートを採用しています。

C#でDataTableからExcelに巨大データをエクスポートする方法, 図1: 新規プロジェクト作成ウィンドウ 新しいプロジェクトウィンドウを作成

プロジェクトタイプを選択した後、プロジェクトに名前を付け、その場所を選択する必要があります。 また、プロジェクトのために好みのフレームワーク(例:.NET Core 6)を指定することもできます。

C#でDataTableからExcelに巨大データをエクスポートする方法, 図2: プロジェクト構成 プロジェクト構成

ソリューションが生成された後、program.csファイルにアクセスでき、コードを入力してアプリケーションを作成/実行できます。

C#でDataTableからExcelに巨大データをエクスポートする方法, 図3: コードが開いているプロジェクト コードオープンのプロジェクト

3. IronXLのインストール

IronXLライブラリは、さまざまな方法でダウンロードおよびインストールできます:

  • Visual StudioのNuGetパッケージを使用
  • Visual Studioのコマンドラインを使用。

3.1 Visual Studio NuGetパッケージを使用

Visual StudioのNuGetパッケージマネージャを開き、ブラウズタブでIronXLを検索してNuGetパッケージマネージャでIronXLライブラリをインストールします。

検索結果でIronXLを見つけたら、それを選択してインストールを進めます。 インストールが完了すると、プロジェクトでIronXLライブラリを使用できます。

以下のスクリーンショットは、Visual StudioでNuGetパッケージマネージャを開く方法を示しています。

C#でDataTableからExcelに巨大データをエクスポートする方法, 図4: NuGetパッケージマネージャー NuGetパッケージマネージャー

検索結果のIronXL:

C#でDataTableからExcelに巨大データをエクスポートする方法, 図5: IronXL検索結果 IronXL検索結果

3.2 Visual Studioコマンドラインを使用

多くの開発者は、コマンドラインインターフェースを使用してパッケージをインストールすることを好みます。 コマンドラインを使用してIronXLをインストールするには、次の手順を実行します:

  • Go to Tools > NuGetパッケージマネージャー > Package Manager Console in Visual Studio.
  • パッケージマネージャコンソールタブで次の行を入力してください:
Install-Package IronXL.Excel

現在のプロジェクトにパッケージがダウンロード/インストールされ、使用できる準備が整います。

C#でDataTableからExcelに巨大データをエクスポートする方法, 図6: コマンドライン経由でのインストール コマンドラインによるインストール

4. DataTableからExcelファイルへのデータエクスポート

IronXLを使用してDataTableのデータをExcelにエクスポートするには、C#プロジェクトと統合されたデータベーステーブルが必要です。

以下のコードサンプルは、すべてのDataTableカラムからExcelワークシートにデータをエクスポートする方法を示しています。

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

class LargeDataToExcel 
{
    static void Main()
    {
        // SQL query to select all data from the specified table
        string sql = "SELECT * FROM [dbo].[Table]";

        // SQL Server connection string
        string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\USERS\YOURUSERNAME\SOURCE\REPOS\YOURPROJECT\DATABASE1.MDF;Integrated Security=True";

        // Establishing a SQL connection using SqlConnection
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            // Open the connection to the database
            connection.Open();

            // Initialize the SqlDataAdapter with the SQL query and connection
            SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);

            // Create a new DataSet to hold the data from the database
            DataSet ds = new DataSet();

            // Fill the DataSet with data from the database
            adapter.Fill(ds);

            // Create a new Excel workbook from the DataSet
            WorkBook workBook = WorkBook.Load(ds);

            // Save the workbook as an Excel file
            workBook.SaveAs("sample.xlsx");
        }
    }
}
using IronXL;
using System;
using System.Data;
using System.Data.SqlClient;

class LargeDataToExcel 
{
    static void Main()
    {
        // SQL query to select all data from the specified table
        string sql = "SELECT * FROM [dbo].[Table]";

        // SQL Server connection string
        string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\USERS\YOURUSERNAME\SOURCE\REPOS\YOURPROJECT\DATABASE1.MDF;Integrated Security=True";

        // Establishing a SQL connection using SqlConnection
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            // Open the connection to the database
            connection.Open();

            // Initialize the SqlDataAdapter with the SQL query and connection
            SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);

            // Create a new DataSet to hold the data from the database
            DataSet ds = new DataSet();

            // Fill the DataSet with data from the database
            adapter.Fill(ds);

            // Create a new Excel workbook from the DataSet
            WorkBook workBook = WorkBook.Load(ds);

            // Save the workbook as an Excel file
            workBook.SaveAs("sample.xlsx");
        }
    }
}
Imports IronXL
Imports System
Imports System.Data
Imports System.Data.SqlClient

Friend Class LargeDataToExcel
	Shared Sub Main()
		' SQL query to select all data from the specified table
		Dim sql As String = "SELECT * FROM [dbo].[Table]"

		' SQL Server connection string
		Dim connectionString As String = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\USERS\YOURUSERNAME\SOURCE\REPOS\YOURPROJECT\DATABASE1.MDF;Integrated Security=True"

		' Establishing a SQL connection using SqlConnection
		Using connection As New SqlConnection(connectionString)
			' Open the connection to the database
			connection.Open()

			' Initialize the SqlDataAdapter with the SQL query and connection
			Dim adapter As New SqlDataAdapter(sql, connection)

			' Create a new DataSet to hold the data from the database
			Dim ds As New DataSet()

			' Fill the DataSet with data from the database
			adapter.Fill(ds)

			' Create a new Excel workbook from the DataSet
			Dim workBook As WorkBook = WorkBook.Load(ds)

			' Save the workbook as an Excel file
			workBook.SaveAs("sample.xlsx")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

C#でDataTableからExcelに巨大データをエクスポートする方法, 図7: Excelファイルの中の抽出されたデータ Excelファイルの中の抽出されたデータ

上記のコードでは、大規模なデータテーブルがSQL Serverデータベースから取得され、Excelファイルにエクスポートされます。プロジェクトとSQLサーバーの間の接続は、接続文字列を使用して確立されます。

SqlDataAdapterオブジェクトを使用して、SQLクエリによって指定されたデータを取得します。 DataSetオブジェクトは、DataTableのコレクション、その関係と制約を格納できます。 SqlDataAdapterはSQLクエリの結果としてデータテーブルのデータでDataSetを構築します。

次に、IronXLライブラリのWorkBookクラスの新しいインスタンスを作成し、そこにDataSetをロードします。 最後に、WorkBookはExcelファイルの拡張子であるXLSXファイルとして保存されます。

このコードを使用すると、各ヘッダ行を作成したり手動でカラムを追加する必要はありません。 数秒で、そのテーブルのすべてのデータがIronXL Excel Libraryを使用して新しいExcelファイルにエクスポートされます。 この技術を使用すると、開発者はさまざまなデータ型、サイズ、ソースのデータを簡単にExcelワークシートにエクスポートできます。

5. 結論

C#では、さまざまなライブラリと技術を使用してDataTableからExcelスプレッドシートにデータをエクスポートできます。 大量のデータを扱う場合、アプリケーションのパフォーマンスを犠牲にせずに効率的にデータを処理する技術を利用することが重要です。

IronXLライブラリは、Excelファイルをプログラムで読み書き、編集するためのシンプルで直感的なインターフェースを提供する優れたソリューションです。 Excelファイルからデータベースへの書き込みにIronXLライブラリを利用するには、Visual StudioやASP.NETなどのいくつかの事前条件を満たすことが重要です。要件を満たした後、IronXLライブラリはVisual StudioのNuGetパッケージやVisual Studioコマンドラインなど、さまざまな方法でダウンロードしてインストールすることができます。インストール後、DataTableからデータをエクスポートするExcelワークシートを作成する新しいワークブックを作成するコードを書くことが次のステップです。

DataTableからC#でExcelワークシートにデータをエクスポートする方法を理解することで、開発者はアプリケーション内のデータを効果的に管理し、ユーザー体験を向上させることができます。 DataTableからExcelにデータをエクスポートする方法についての詳細な情報は、次のチュートリアルをご覧ください。 Excelファイルからのデータエクスポート方法に関する更なる情報については、別のチュートリアルを訪問してください。Excelファイルからのデータエクスポート。 IronXLの全機能を試すための無料トライアルが利用可能です。

Users can also benefit from Iron Suite, a collection of software development tools including IronPDF, IronOCR, IronXL, IronBarcode, and IronWebscraper.

よくある質問

DataTable から Excel に大規模なデータセットをどのようにエクスポートできますか?

IronXL の WorkBook クラスを使用して、大規模なデータセットを DataTable から Excel シートに効率的にエクスポートできます。このプロセスには、SQL 接続の設定、SqlDataAdapter を使用したデータの取得、および IronXL を使用したデータエクスポートの合理化が含まれます。

IronXL を使用したデータエクスポートの前提条件は何ですか?

IronXL を使用してデータをエクスポートするには、Visual Studio、ASP.NET、および SQL がインストールされている必要があります。また、IronXL ライブラリが必要であり、これは NuGet パッケージマネージャーまたは Visual Studio コマンドラインを介してインストールできます。

Visual Studio プロジェクトに IronXL をインストールする方法を教えてください。

IronXL は NuGet パッケージマネージャーを使用して Visual Studio プロジェクトにインストールできます。「IronXL」を検索し、選択してインストールを完了します。あるいは、パッケージマネージャーコンソールで Install-Package IronXL.Excel コマンドを使用します。

IronXL は大規模なデータ量のエクスポートをパフォーマンス問題なしで処理できますか?

はい、IronXL は大規模なデータ量を効率的に処理するように設計されており、DataTable から Excel スプレッドシートへのエクスポートプロセス中のエラーを最小限に抑えながら、アプリケーションのパフォーマンスを維持します。

Excel自動化にIronXLを使用する利点は何ですか?

IronXL を使用した Excel 自動化は、データ操作のタスクを簡素化することでワークフローを改善します。これは、エラーを減少させ、Microsoft Office コンポーネントを必要とせずに Excel データと直接対話できるため、自動化に有利です。

IronXL の無料試用版は利用可能ですか?

はい、IronXL は、購入を決める前にその機能と機能性を探ることができる無料試用版を提供しています。

IronXL の一般的な使用例は何ですか?

IronXL は、財務モデリング、販売レポート、データ視覚化、C# アプリケーションでの反復 Excel 操作の自動化などのタスクで一般的に使用されます。

DataTables からデータをエクスポートするリソースはどこで見つけられますか?

DataTables から IronXL を使用して Excel にデータをエクスポートするための追加のリソースとチュートリアルは、IronXL のウェブサイトで見つけることができ、さまざまなデータエクスポートシナリオの処理ガイドも提供しています。

Iron Suite にはどのような開発ツールがありますか?

Iron Suite には、IronPDF、IronOCR、IronXL、IronBarcode、IronWebscraper などが含まれており、さまざまなソフトウェア開発ニーズに対応する包括的なソリューションを提供します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。