
C# Fastest way to Export DataTable to Excel
スプレッドシートを使用する際、Microsoft Excelアプリケーションは、大量のデータセットを表形式で管理するために設計された人気のあるスプレッドシートツールです。 Excelは、複雑な計算、チャートやグラフを使用したデータの視覚化、ピボットテーブル、Visual Basic for Applications(VBA)を介した自動化のサポートなどの強力な機能を提供します。 その堅牢なデータ分析および視覚化ツールにより、Excelはさまざまな業界で優れた選択肢となっています。 Excelを使用することで、ファイルの作成、編集、表示、共有が容易になり、データ管理の作業を効率化します。
C#では、ADO.NETライブラリのDataTableオブジェクトが、Excelワークシートのようにプログラム内の表形式データを表します。 データを行と列に整理し、簡単に操作およびエクスポートできます。 Excelと同様に、DataTableはフィルタリング、並べ替え、フォーマットオプションをサポートし、C#でのデータ範囲管理ツールとしてよく使用されます。 しかし、DataTableは実行時に作成され、アプリケーションが閉じたときにそのデータは失われます。これはExcelファイルやCSVファイルなどのより永続的な形式にエクスポートされない限りです。
今日、C#でDataTableを作成し、IronXLを使用してそのデータをExcelドキュメントにエクスポートする方法を探ります。
IronXL: A .NET Excelライブラリ
IronXLは、Excelファイルの作成プロセスを簡素化するC# .NETライブラリです。 IronXLを使用すると、新しいスプレッドシートの作成、既存のものの編集、Excel数式の利用、スプレッドシートのセルのスタイル設定などが可能です。 その豊富な機能により、プログラム的にExcelファイルを操作するのが容易になり、最も重要なのは、Microsoft Office Interopを必要としないことです。これにより、Microsoft Officeやその他の特別な依存関係をインストールする必要がありません。
IronXLを使用すると、XLSやXLSX、CSVデータやTSV、JSON、XML、HTML、バイナリ、およびバイト配列など、さまざまな形式でデータの保存またはエクスポートが可能です。 また、許可やパスワードの追加などの強力なワークブックセキュリティ機能を備えており、ワークブックのメタデータの編集を可能にします。
DataTableからExcelファイルへのデータエクスポートの手順
前提条件
IronXLを使用してC#でDataTableからExcelファイルにデータをエクスポートするには、ローカルコンピュータに以下のコンポーネントをインストールする必要があります。 それらを一つずつ見てみましょう。
- Visual Studio - C#プログラミングのためのIDEであるVisual Studioをインストールする必要があります。 Visual Studioのウェブサイトから最新バージョンをダウンロードしてインストールできます。
-
IDEが設定されたら、DataTableをExcelにエクスポートするのに役立つコンソールアプリケーションまたはWindowsフォームを作成する必要があります。 以下のスクリーンショットは、プロジェクトを作成する方法を示しています。

次に、プロジェクトの種類を選択します。 私たちの例では、コンソールアプリを作成します。

プロジェクトに名前を付け、保存する場所を選択します。

最後に、.NETフレームワークを選択し、"作成"をクリックします。

最後のスクリーンショットで"作成"をクリックすると、**"DemoApp"**という名前のプロジェクトが作成されます。
- IronXLライブラリ - Visual StudioプロジェクトにIronXLライブラリをダウンロードしてインストールする必要があります。 これを行う方法はいくつかあります。
-
Visual Studioを使用する - NuGetパッケージマネージャーを使用してIronXLをインストールできます。 ツールメニューまたはソリューションエクスプローラからアクセスできます。 以下のスクリーンショットは、IronXLをインストールする手順を示しています。 まず、上部バーの"ツール"にアクセスするか、ソリューションエクスプローラ内で右クリックします。


"Manage NuGet Packages for Solution"に移動し、IronXLを検索します。 "インストール"を押すだけで、プロジェクトにIronXLライブラリが追加されます。

-
Developer Command Prompt - Visual StudioツールメニューまたはVisual StudioフォルダからDeveloper Command Promptを開きます。 プロジェクトにIronXLをダウンロードおよびインストールするには、次のコマンドを入力します:
PM > Install-Package IronXL.ExcelSHELL- NuGetパッケージマネージャーから直接 - このURLhttps://www.nuget.org/packages/IronXL.Excel/にアクセスしてIronXLをダウンロードします。
-
必要な名前空間を追加する - DataTableを作成し、IronXLを使用するには、両方ともProgram.csファイルの上部に参照する必要があります。
using IronXL; // Add reference to the IronXL library using System.Data; // Add reference to System.Data for DataTableImports IronXL ' Add reference to the IronXL library Imports System.Data ' Add reference to System.Data for DataTable
すべての前提条件が満たされたら、DataTableからExcelシートへのデータのエクスポートを開始します。
Create a DataTable in C#
次のコードは、2つの列ヘッダーと複数の行を持つ新しいデータテーブルを作成します:
// Create a new DataTable object
DataTable dt = new DataTable();
// Add column names to the DataTable
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
// Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars");
dt.Rows.Add("Dog", "Barks");
dt.Rows.Add("Cat", "Meows");
dt.Rows.Add("Goat", "Bleats");
dt.Rows.Add("Wolf", "Howls");
dt.Rows.Add("Cheetah", "Purrs");' Create a new DataTable object
Dim dt As New DataTable()
' Add column names to the DataTable
dt.Columns.Add("Animal")
dt.Columns.Add("Sound")
' Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars")
dt.Rows.Add("Dog", "Barks")
dt.Rows.Add("Cat", "Meows")
dt.Rows.Add("Goat", "Bleats")
dt.Rows.Add("Wolf", "Howls")
dt.Rows.Add("Cheetah", "Purrs")最初に、"dt"と呼ばれる新しいDataTableを作成します。 次に、Columns.Addを使用して、指定された名前でデータテーブルに列を追加します。 例では、"Animal"と"Sound"という2つの列があります。 その後、Rows.Addを使用して新しい行を追加し、中括弧内に各行の内容を配置します。 内容はカンマで区切られ、列ごとに区切られた文字列になります。
Create Excel File using IronXL in C#
IronXLを使用してスクラッチからExcelファイルタイプを作成する際、2ステップのプロセスであり、C#で非常に簡単に実装できます。 IronXLは最初にExcelワークブックを作成し、次にそれにワークシートを追加します。 以下のサンプルコードは、ワークブックとそのワークシートを作成する方法を示します:
// Create a new workbook in XLSX format
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
// Reference to the default worksheet in the workbook
WorkSheet ws = wb.DefaultWorkSheet;' Create a new workbook in XLSX format
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
' Reference to the default worksheet in the workbook
Dim ws As WorkSheet = wb.DefaultWorkSheetIronXLを使用してDataTableからExcelワークシートへのデータのエクスポート
IronXLを利用してワークシートに値を追加することで、プロセス全体が合理化され、最小限のコードでこのタスクを実行できるようになります。 ここでは、前のセクションで作成したDataTableからデータをエクスポートして、新しく作成したExcelワークシートにエクスポートする方法を学びます。 コードをステップバイステップで見てみましょう。
Excelワークシートに列ヘッダーを追加する
// Assign DataTable column names to the first row of the Excel worksheet
ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
// Start adding data from the second row
int rowCount = 2;' Assign DataTable column names to the first row of the Excel worksheet
ws("A1").Value = dt.Columns(0).ToString()
ws("B1").Value = dt.Columns(1).ToString()
' Start adding data from the second row
Dim rowCount As Integer = 2上記のコードでは、Excelシートの列"A1"にDataTableの列1のインデックス0の値が割り当てられ、次のExcel列"B1"の値はDataTableの列2のインデックス1から割り当てられます。 rowCount変数は2に設定されており、2行目からDataTableの行を読み取るようになっています; これは見出し行を数えないようにするためです。
Excelワークシートに行を追加する
以下のコードは、DataTableの各行を読み取り、Excelファイルの新しい行に割り当てます:
// Iterate through each row in the DataTable and add to Excel worksheet
foreach (DataRow row in dt.Rows)
{
ws["A" + (rowCount)].Value = row[0].ToString();
ws["B" + (rowCount)].Value = row[1].ToString();
rowCount++;
}' Iterate through each row in the DataTable and add to Excel worksheet
For Each row As DataRow In dt.Rows
ws("A" & (rowCount)).Value = row(0).ToString()
ws("B" & (rowCount)).Value = row(1).ToString()
rowCount += 1
Next rowrowCount変数は毎回インクリメントされ、DataTableからExcelワークシートのセルに新しい行が読み取られるようになります。
Excelファイルを保存する
最後に、**SaveAs()**メソッドを使用してExcelファイルを保存します。
// Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");' Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx")ファイルはCSV(カンマ区切り値)、JSON、XMLなどの他の形式でも保存できます。
// Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");' Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv")
wb.SaveAsJson("DataTable_to_Excel_IronXL.json")
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml")カスタムデリミタで保存することもできます。
出力
ファイルの最終出力は次のようになります:

まとめ
この記事では、C#で列と行のあるDataTableを作成し、IronXLを使用してデフォルトのワークシートを持つExcelワークブックを生成する方法を示しました。 続いて、DataTableから表形式のデータをExcelファイルにエクスポートし、.xlsx形式で保存しました。
IronXLは、MS Excelをインストールしていない場合でも、Excelファイルをシームレスに操作できるユーザーフレンドリーなC#ライブラリです。 これは、さらなる操作や計算に使用されるCSVファイルなど、さまざまな形式からのデータエクスポートをサポートしています。
IronXLとその強力な機能セットについて詳しく知るには、ぜひその広範なドキュメントをチェックしてください。 それを自分で試してみませんか? IronXLは、すべての機能にフルアクセスできる無料トライアルも提供しており、この強力なライブラリがスプレッドシートプロジェクトの改善にどのように貢献できるかをすぐに探り始めることができます!

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



