ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
ExcelデータをC#のDataTable
に読み込むためのExcelライブラリをお探しですか?
C#でExcelファイルをDataTable
に読み込むことは、データ分析とレポート、データベースへのデータインポート、データ移行、データ検証およびクリーニング、他のシステムとの統合、自動化、バッチ処理など、さまざまな業界や分野において実用的な応用があります。
この記事では、ExcelデータおよびExcelファイルをDataTable
に読み込む機能を提供する、C#による.NET Core用の2つの異なるExcelライブラリについて議論し、比較します。 ライブラリは
EPPlus
IronXL は、.NET 開発者向けの強力な Excel ライブラリです。このツールを使用すると、Microsoft Excel を使用せずに、Excel ファイルの読み取り、書き込み、編集を行うことができます。大量のデータ処理やレポーティングに最適で、C# および VB.NET 言語で簡単に統合できます。
主要な特徴:
IronXL for .NET は、開発者が Excel 関連のタスクを簡単かつ効率的に実行できるように設計されています。
EPPlusの C# で Excel ファイルを作成および操作するための強力なオープンソース ライブラリです。 それは、サーバーやクライアントマシンにMicrosoft OfficeやExcelをインストールすることなく、開発者がExcelスプレッドシートをプログラム上で生成、読み取り、変更できるシンプルで直感的なAPIを提供します。 EPPlusを使用すると、ワークシートを簡単に作成したり、データを追加したり、フォーマットを適用したり、グラフを作成したり、その他のExcelファイルに対する操作を行うことができます。 それは古い .xls フォーマットと新しい .xlsx フォーマットの両方をサポートし、効率的なパフォーマンスとメモリ管理を提供します。 レポートの動的生成、データのインポート/エクスポート、またはExcel関連のタスクの自動化が必要な場合、EPPlusはC#アプリケーションでのExcelファイルの取り扱いを簡素化するための包括的な機能と能力を提供します。
IronXL は、.NET 開発者向けの強力な Excel ライブラリです。このツールを使用すると、Microsoft Excel を使用せずに、Excel ファイルの読み取り、書き込み、編集を行うことができます。大量のデータ処理やレポーティングに最適で、C# および VB.NET 言語で簡単に統合できます。
主要な特徴:
IronXL for .NET は、開発者が Excel 関連のタスクを簡単かつ効率的に実行できるように設計されています。
IronXLは、.NET アプリケーション内で Excel ファイルを簡単に読み取り、書き込み、操作する能力を開発者に提供する強力で多用途なライブラリです。 直感的かつ包括的なAPIを備えたIronXLは、スプレッドシートを操作するという複雑なプロセスを簡素化し、開発者がデータをシームレスに抽出し、計算を行い、チャートを作成し、簡単にレポートを生成できるようにします。 データのインポート/エクスポートタスクの自動化、データ分析の実行、または動的なExcelテンプレートの作成など、IronXLは、開発者の貴重な時間と労力を節約しながらExcelデータの処理において正確性と信頼性を確保する堅牢なソリューションを提供します。 シームレスな統合、充実したドキュメント、および幅広い機能を備えているため、IronXLは.NETフレームワークにおけるExcelファイル操作の課題に立ち向かうための信頼できる効率的なツールを求める開発者にとって最適な選択肢として浮上します。
C#プロジェクトにEPPlusライブラリをインストールするには、まずVisual Studioで新しいコンソールベースのプロジェクトを作成する必要があります。 その後、NuGetパッケージマネージャーを使用して簡単にインストールできます。
新しいプロジェクトが作成されたら、「ツール」に移動して「NuGet パッケージ マネージャー」にカーソルを合わせ、「ソリューションの NuGet パッケージの管理」を選択します。
新しいウィンドウが表示されます。 新しいウィンドウで「Browse」オプションに移動し、「EPPlus」を検索してください。 パッケージのリストが表示されるので、最新の安定版を選択してください。 次に、右側にある「Install」ボタンをクリックして、EPPlusライブラリをインストールします。
このようにして、EPPlusがあなたのプロジェクトに追加されます。
IronXLをインストールする方法はいくつかありますが、このセクションではNuGetパッケージマネージャーを使用してIronXLをインストールする方法についてのみ説明します。
セクション3と同様に、新しいプロジェクトを作成し、「ツール」に移動して、ソリューション用のNuGetパッケージマネージャーを開きます。
新しいウィンドウで、検索バーに「IronXL」というキーワードを入力してください。 リストが表示され、インストールしたいIronXLパッケージを選択できます。 次に、「Install」ボタンをクリックして、プロジェクトにIronXLをインストールします。
「IronXL」の使用準備が整いました。
このセクションでは、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";
var data = ExcelDataToDataTable(path, "Table");
foreach (DataRow row in data.Rows)
{
foreach (var wsrow in row.ItemArray)
{
Console.Write(wsrow);
}
Console.WriteLine();
}
}
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 Exists");
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
var xlPackage = new ExcelPackage(fi);
// get the first worksheet in the workbook
var worksheet = xlPackage.Workbook.Worksheets [sheetName];
dt = worksheet.Cells [1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
{
c.FirstRowIsColumnNames = true;
});
return dt;
}
}
using OfficeOpenXml;
using System;
using System.Data;
using System.IO;
class Program
{
static void Main(string [] args)
{
var path = @"sample.xlsx";
var data = ExcelDataToDataTable(path, "Table");
foreach (DataRow row in data.Rows)
{
foreach (var wsrow in row.ItemArray)
{
Console.Write(wsrow);
}
Console.WriteLine();
}
}
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 Exists");
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
var xlPackage = new ExcelPackage(fi);
// get the first worksheet in the workbook
var worksheet = xlPackage.Workbook.Worksheets [sheetName];
dt = worksheet.Cells [1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
{
c.FirstRowIsColumnNames = true;
});
return dt;
}
}
Imports OfficeOpenXml
Imports System
Imports System.Data
Imports System.IO
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim path = "sample.xlsx"
Dim data = ExcelDataToDataTable(path, "Table")
For Each row As DataRow In data.Rows
For Each wsrow In row.ItemArray
Console.Write(wsrow)
Next wsrow
Console.WriteLine()
Next row
End Sub
Public Shared Function ExcelDataToDataTable(ByVal filePath As String, ByVal sheetName As String, Optional ByVal hasHeader As Boolean = True) As DataTable
Dim dt As New DataTable()
Dim fi = New FileInfo(filePath)
' Check if the file exists
If Not fi.Exists Then
Throw New Exception("File " & filePath & " Does Not Exists")
End If
ExcelPackage.LicenseContext = LicenseContext.NonCommercial
Dim xlPackage = New ExcelPackage(fi)
' get the first worksheet in the workbook
Dim worksheet = xlPackage.Workbook.Worksheets (sheetName)
dt = worksheet.Cells (1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column).ToDataTable(Sub(c)
c.FirstRowIsColumnNames = True
End Sub)
Return dt
End Function
End Class
上記のコードは、ファイルパスやシート名などの入力パラメータを受け取り、出力としてDataTable
を返すメソッドを呼び出します。
Excelシートを変換してDataTableとして読み取ることは、IronXLを使用すれば数行のコードで非常に簡単に行えます。 さらに、以前のExcelファイルを入力として使用します。
以下のコード例は、上記のコードと同じ機能を提供しますが、IronXLを使用します。
using IronXL;
using System;
using System.Data;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
DataTable Table = workSheet.ToDataTable(true);
foreach (DataRow row in Table.Rows)
{
for (int row = 0; row < dataTable.Columns.Count; row ++)
{
Console.Write(row [row ] + " ");
}
Console.WriteLine();
}
using IronXL;
using System;
using System.Data;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
DataTable Table = workSheet.ToDataTable(true);
foreach (DataRow row in Table.Rows)
{
for (int row = 0; row < dataTable.Columns.Count; row ++)
{
Console.Write(row [row ] + " ");
}
Console.WriteLine();
}
Imports IronXL
Imports System
Imports System.Data
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private Table As DataTable = workSheet.ToDataTable(True)
For Each row As DataRow In Table.Rows
For row As Integer = 0 To dataTable.Columns.Count - 1
Console.Write(row (row) & " ")
Next row
Console.WriteLine()
Next row
上記のコード例では、Excelファイルを読み込み、workSheet.ToDataTable
を使用してDataTable
に変換しています。(True)メソッド
結論として、C#でExcelファイルを読み込み、それらをDataTableに変換する際には、EPPlusとIronXLの両方が強力な機能を提供し、プロセスを簡素化する優れたライブラリです。
EPPlusは、Excelスプレッドシートをプログラムで生成、読み取り、修正するためのシンプルなAPIを提供するオープンソースのライブラリです。 それは、.xlsと.xlsxの両方の形式をサポートし、効率的なパフォーマンスとメモリ管理を提供します。
一方、IronXLは、開発者が.NETアプリケーションでExcelファイルを簡単に操作できる多用途ライブラリです。 直感的なAPIと、データ抽出、計算の実行、チャートの作成、レポートの生成のための包括的な機能を提供します。 IronXLは、データのインポート/エクスポート、データ解析、動的テンプレート作成など、複雑なExcelファイル操作タスクを簡素化します。
IronXLとEPPlusのコード例を比較すると、EPPlusのコードはかなり長く、複雑で、読みづらいことがわかります。 一方で、IronXLのコードは非常にシンプルで読みやすいです。 IronXLはデフォルトのワークシートを使用しますが、EPPlusではワークシートの名前を指定する必要があります。そうしないとエラーが発生します。
要約すると、Excelファイルの操作やExcelファイルをDataTable
として読み取るためには、EPPlusよりもIronXLをお勧めします。 また、IronXLはシンプルなコードでExcelファイルを扱う際に、EPPlusよりも多くの機能を提供します。 IronXLに関するチュートリアルについては、以下のリンクをご覧ください。リンク.
9つの .NET API製品 オフィス文書用