EPPlusでExcelをDataTableに読み込むC#(IronXLチュートリアル)
C#でDataTableにExcelデータを読み込むライブラリを探していますか?
C#でExcelファイルをDataTableに読み込むことは、データ分析とレポーティング、データベースへのデータインポート、データ移行、データ検証とクリーニング、他のシステムとの統合、自動化、およびバッチ処理など、さまざまな業界や分野で多くの実用的な用途があります。
この記事では、C#の.NET Core向けの2つの異なるExcelライブラリを比較し、ExcelデータおよびExcelファイルをDataTableに読み込む機能を提供する方法を説明します。 ライブラリは
- EPPlus
- IronXL
1. EPPlusライブラリ
EPPlusは、C#でExcelファイルを作成および操作するための強力なオープンソースライブラリです。 このライブラリは、サーバーやクライアントマシンにMicrosoft OfficeやExcelのインストールを必要とせずに、Excelスプレッドシートをプログラム的に生成、読み込み、変更するためのシンプルで直感的なAPIを提供します。 EPPlusを使用すると、ワークシートの作成、データの追加、フォーマットの適用、チャートの作成、その他のExcelファイルに対する操作が簡単に行えます。 古い.xls形式と新しい.xlsx形式の両方に対応しており、効率的なパフォーマンスとメモリ管理を提供します。 動的なレポートの生成、データのインポート/エクスポート、Excel関連タスクの自動化が必要な場合、EPPlusはC#アプリケーションでのExcelファイルの取り扱いを簡素化する包括的な機能と能力を提供します。
2. IronXL
IronXLは、.NETアプリケーション内でExcelファイルを簡単に読み書きし操作する能力を開発者に提供する強力で多用途なライブラリです。 直感的で包括的なAPIにより、IronXLはスプレッドシートの操作が従来は複雑だったプロセスを簡素化し、データの抽出、計算の実行、チャートの作成、レポートの生成をスムーズに行えるようにします。 データのインポート/エクスポート自動化、データ分析、動的なExcelテンプレートの作成において、IronXLは開発者の貴重な時間と労力を節約しながら、Excelデータの取り扱いの正確性と信頼性を確保する堅牢なソリューションを提供します。 シームレスな統合、広範なドキュメント、および多様な機能範囲を持つIronXLは、Excelファイルの操作に関連する課題を克服したい開発者のための信頼性と効率性を持ったツールとして最適な選択肢となります。
3. EPPlusライブラリのインストール
C#プロジェクトにEPPlusライブラリをインストールするには、まずVisual Studioで新しいコンソールベースのプロジェクトを作成する必要があります。 その後、NuGetパッケージマネージャーを使用して簡単にインストールできます。
新しいプロジェクトを作成したら、ツールに移動し、NuGetパッケージマネージャーにホバーした後、"ソリューション用のNuGetパッケージの管理"を選択します。
新しいウィンドウが表示されます。 この新しいウィンドウで、"参照"オプションに行き、"EPPlus"を検索します。 パッケージのリストが表示され、最新の安定版を選択する必要があります。 その後、右側の"インストール"ボタンをクリックしてEPPlusライブラリをインストールします。
これで、EPPlusがプロジェクトに追加されます。
4. IronXLのインストール
IronXLをインストールする方法はいくつかありますが、このセクションではNuGetパッケージマネージャーを使用したIronXLのインストールのみを説明します。
セクション3と同様に、新しいプロジェクトを作成し、"ツール"に移動して、ソリューション用のNuGetパッケージマネージャーを開きます。
新しいウィンドウで、検索バーに"IronXL"というキーワードを入力します。 リストが表示され、インストールしたいIronXLパッケージを選択できます。 その後、"インストール"ボタンをクリックしてプロジェクトにIronXLをインストールします。
これでIronXLは使用可能です。
5. EPPlusライブラリを使用してExcelファイルとデータをDataTableに読み込む
このセクションでは、C#EPPlusパッケージのExcelライブラリを使用して、ExcelをDataTableとして読み込むコードを検討します。
DataTableとして読み込むためのサンプルExcelファイルが必要です。 その目的のために、サンプルのExcelファイルを生成します。
以下はExcelファイルをDataTableとして読み込むためのコードです。
using OfficeOpenXml;
using System;
using System.Data;
using System.IO;
class Program
{
static void Main(string[] args)
{
var path = @"sample.xlsx"; // Specify the path to your Excel file
var data = ExcelDataToDataTable(path, "Table");
// Iterate through each row in the DataTable and print its contents
foreach (DataRow row in data.Rows)
{
foreach (var wsrow in row.ItemArray)
{
Console.Write(wsrow + " ");
}
Console.WriteLine();
}
}
/// <summary>
/// Converts Excel sheet data to a DataTable.
/// </summary>
/// <param name="filePath">The path to the Excel file.</param>
/// <param name="sheetName">The name of the worksheet to read from.</param>
/// <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
/// <returns>DataTable containing Excel data.</returns>
public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
{
DataTable dt = new DataTable();
var fi = new FileInfo(filePath);
// Check if the file exists
if (!fi.Exists)
throw new Exception("File " + filePath + " does not exist.");
// Set the license context for EPPlus
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
// Load the Excel file into an EPPlus ExcelPackage
using (var xlPackage = new ExcelPackage(fi))
{
// Get the specified worksheet from the workbook
var worksheet = xlPackage.Workbook.Worksheets[sheetName];
// Convert the worksheet to a DataTable, optionally using the first row as column names
dt = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
{
c.FirstRowIsColumnNames = hasHeader;
});
}
return dt;
}
}using OfficeOpenXml;
using System;
using System.Data;
using System.IO;
class Program
{
static void Main(string[] args)
{
var path = @"sample.xlsx"; // Specify the path to your Excel file
var data = ExcelDataToDataTable(path, "Table");
// Iterate through each row in the DataTable and print its contents
foreach (DataRow row in data.Rows)
{
foreach (var wsrow in row.ItemArray)
{
Console.Write(wsrow + " ");
}
Console.WriteLine();
}
}
/// <summary>
/// Converts Excel sheet data to a DataTable.
/// </summary>
/// <param name="filePath">The path to the Excel file.</param>
/// <param name="sheetName">The name of the worksheet to read from.</param>
/// <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
/// <returns>DataTable containing Excel data.</returns>
public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
{
DataTable dt = new DataTable();
var fi = new FileInfo(filePath);
// Check if the file exists
if (!fi.Exists)
throw new Exception("File " + filePath + " does not exist.");
// Set the license context for EPPlus
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
// Load the Excel file into an EPPlus ExcelPackage
using (var xlPackage = new ExcelPackage(fi))
{
// Get the specified worksheet from the workbook
var worksheet = xlPackage.Workbook.Worksheets[sheetName];
// Convert the worksheet to a DataTable, optionally using the first row as column names
dt = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
{
c.FirstRowIsColumnNames = hasHeader;
});
}
return dt;
}
}上記のコードは、ファイルパスやシート名などの入力パラメータを受け取り、DataTableを出力として返すメソッドを定義しています。 また、DataTableの各行を反復処理してデータを印刷します。
5.1. 出力
出力はExcelファイルの内容がコンソールに印刷されることになります。
6. IronXLを使用してExcelファイルをDataTableとして読み込む
Excelシートを変換してDataTableとして読み込むことは、IronXLを使用することで非常に簡単で、ほんの数行のコードで行えます。 さらに、以前のExcelファイルを入力として使用します。
次のコード例は、上記のコードと同じ機能を実行しますが、IronXLを使用します。
using IronXL;
using System;
using System.Data;
class Program
{
static void Main(string[] args)
{
// Load the Excel file into an IronXL WorkBook
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Get the default worksheet from the workbook
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Convert the worksheet to a DataTable, specifying that the first row contains column names
DataTable table = workSheet.ToDataTable(true);
// Iterate through each row in the DataTable and print its contents
foreach (DataRow row in table.Rows)
{
foreach (var cell in row.ItemArray)
{
Console.Write(cell + " ");
}
Console.WriteLine();
}
}
}using IronXL;
using System;
using System.Data;
class Program
{
static void Main(string[] args)
{
// Load the Excel file into an IronXL WorkBook
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Get the default worksheet from the workbook
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Convert the worksheet to a DataTable, specifying that the first row contains column names
DataTable table = workSheet.ToDataTable(true);
// Iterate through each row in the DataTable and print its contents
foreach (DataRow row in table.Rows)
{
foreach (var cell in row.ItemArray)
{
Console.Write(cell + " ");
}
Console.WriteLine();
}
}
}上記のコード例では、単にExcelファイルをロードし、workSheet.ToDataTable(true)メソッドを使用してDataTableに変換しています。
6.1 出力
出力はExcelファイルの内容がコンソールに印刷されることになります。
7. 結論
結論として、C#でExcelファイルを読み取り、それをDataTableに変換する際、EPPlusもIronXLも強力な機能を提供し、プロセスを簡素化する優れたライブラリです。
EPPlusは、プログラム的にExcelスプレッドシートを生成、読み込み、修正する簡潔なAPIを提供するオープンソースのライブラリです。 .xls形式と.xlsx形式の両方をサポートし、効率的なパフォーマンスとメモリ管理を提供します。
一方、IronXLは、.NETアプリケーションでExcelファイルを簡単に扱えるようにする多用途なライブラリです。 直感的なAPIと包括的な機能を提供し、データの抽出、計算の実行、チャートの作成、レポートの生成を可能にします。 IronXLは、データのインポート/エクスポート、データ分析、動的テンプレートの作成など、複雑なExcelファイルの操作タスクを簡素化します。
IronXLとEPPlusのコード例を比較すると、EPPlusのコードはかなり長く、複雑で読みづらいことがわかります。 一方、IronXLのコードは非常にシンプルで読みやすいです。 IronXLはデフォルトのワークシートを使用しますが、EPPlusではワークシートの名前を指定する必要があります。 そうでなければ、エラーが発生します。
要約すると、私はExcelファイルを操作し、DataTableとしてExcelファイルを読み取るためにIronXLをEPPlusよりも推奨します。 また、IronXLはEPPlusよりもシンプルなコードでExcelファイルを扱う際の機能を多く提供しています。 IronXLのチュートリアルの詳細については、次のリンクをご覧ください。
よくある質問
Excel データを C# の DataTable に読み込むにはどうすればいいですか?
IronXL を使用して、Excel ワークブックを WorkBook.Load() で読み込み、ワークシートにアクセスし、データを変換するには ToDataTable() を使用して Excel データを DataTable に読み込むことができます。
Excel 操作に IronXL を使用する利点は何ですか?
IronXL は Excel ファイル操作を簡素化するシンプルで直感的な API を提供します。データ抽出、計算、チャート作成、レポート生成の機能を含み、開発者にとって包括的なソリューションとなります。
IronXL は .xls と .xlsx ファイル形式をサポートしていますか?
はい、IronXL は .xls と .xlsx の両方のファイル形式をサポートしており、異なるタイプの Excel ファイルで作業する柔軟性を提供します。
Microsoft OfficeがインストールされていなくてもIronXLを使用できますか?
はい、IronXL はコンピュータに Microsoft Office や Excel がインストールされていなくても Excel ファイルを操作できます。
IronXL を .NET プロジェクトにインストールするにはどうすればいいですか?
IronXL をインストールするには、.NET プロジェクトで NuGet パッケージマネージャを開き、「IronXL」を検索してパッケージをインストールします。これにより IronXL がプロジェクトに追加され、その機能を使い始めることができます。
Excel ファイルを DataTable に読み込む際の一般的な問題とそれらのトラブルシューティング方法は何ですか?
一般的な問題には、間違ったファイルパス、サポートされていないフォーマット、または不適切にフォーマットされたデータが含まれます。ファイルパスが正しいこと、フォーマットがサポートされていること、データがクリーニングされていることを確認してください。IronXLは、これらの問題をトラブルシューティングするのに役立つ明確なエラーメッセージを提供します。
IronXLはExcelファイルをDataTableに読み込む際、EPPlusとどのように比較されますか?
IronXL はその使いやすさと包括的な機能で知られていますが、EPPlus も効果的ですが、実装がより複雑な場合があります。IronXL は開発者にとってより簡単な API を提供します。
IronXLは大規模なExcelファイルに適していますか?
はい、IronXL は大規模な Excel ファイルを効率的に処理するよう設計されており、ファイル操作中のパフォーマンスとメモリ使用を最適化する機能を提供します。
IronXL はデータ分析とレポートに使用できますか?
もちろん、IronXL はデータ分析とレポートに最適であり、データの抽出と操作、チャート作成、およびレポート生成のための堅牢な機能を提供します。
開発者に利益をもたらす IronXL の主要な機能は何ですか?
IronXL の主要な機能には、シームレスなデータ抽出、強力な計算機能、簡単なチャート作成、効率的なレポート生成、Excel ファイル形式の広範なサポートが含まれます。






