Oledbを使用せずにC#でExcelからデータテーブルに変換する方法
Microsoft Excel は、Microsoftによって作成された強力なスプレッドシートプログラムです。 これは、データの整理、分析、および視覚化のために広く使用されているツールです。 これはMicrosoftのOfficeスイートの一部です。 そのさまざまな機能により、Excelはプロフェッショナル、個人、組織、大学によって使用される多用途なツールです。
Excelは、金融、会計、ビジネス分析、データ分析、研究、教育など、幅広い分野で広く使用されています。 その多様性と豊富な機能セットにより、個人およびプロフェッショナルな状況でのデータの整理、評価、および提示に適したツールです。 この記事では、OLEDB接続なしでC#でExcelをDataTableに変換します。
OLEDBを使用せずにC#でExcelをDataTableに変換する方法
- 新しいVisual Studioプロジェクトを作成します。
- 必要なライブラリをインストールします。
- Excelファイルをオブジェクトに読み込みます。
- 特定の方法を使用してExcelシートのデータをDataTableに変換します。
- 必要に応じてDataTableを使用します。
IronXLライブラリー
.NETプログラムでExcelファイルを処理するためのMicrosoft Interopの代替として、IronXLがあります。 Microsoft InteropはExcelとの接続にInteropアセンブリの使用を必要としますが、IronXLは.NET環境でExcelファイルをプログラム的に操作する簡単で効率的、そして強力な方法を提供します。
IronXLを使用する利点のいくつかは次の通りです:
- パフォーマンスとリソースの経済性: IronXLは、PCにExcelプログラムがインストールされていることに依存しないため、Microsoft Interopよりもパフォーマンスとリソース効率で優れています。
- 読みやすさとシンプルさ: IronXLはシンプルなAPIを提供し、Microsoft Interopの欠点なしにExcelファイルの読み書きや操作を容易にします。
- 互換性と依存性: IronXLは、Microsoft ExcelがPCにインストールされている必要がないため、異なるOfficeやExcelバージョンでの依存関係や潜在的な互換性の問題を排除します。
- プラットフォーム独立性: Microsoft Interopが特定のMicrosoft Officeバージョンにもっと密接に関連しているのに対し、IronXLはより広い範囲の設定およびプラットフォームでの展開の柔軟性と簡易性を提供します。
IronXLは、より速く、使いやすく、サードパーティーソフトウェアのインストールが少なくて済むため、Excelファイルをプログラム的に扱う必要がある.NET開発者にとってしばしば好ましい選択肢です。 しかし、プロジェクトの詳細、既存のインフラ、各ライブラリに対するユーザーの親しみやすさなどの要因が選択に影響を与える可能性があります。
これらのソリューションの中から選ぶ際には、常にアプリケーションのニーズを考慮してください。 IronXLライブラリに関する詳細情報は、このウェブサイトをご覧ください。
Visual Studioで新しいプロジェクトを作成する
Visual Studioを開くには、メニューからFileをクリックし、"New Project"を選択します。その後、"Windows Forms Application"を選択してください。

ファイルの場所を選択した後、適切なテキストエリアにプロジェクト名を入力します。 次に、"作成"ボタンをクリックして、以下のサンプルに示すように必要な.NET Frameworkを選択します。

選択されたアプリケーションの種類によって、Visual Studioプロジェクトの構造が決まります。 コードを追加するには、Program.csファイルに入ってアプリケーションをコンソール、Windows、またはウェブアプリケーションとして構築または実行してください。

次に、必要なライブラリを追加してコードをテストします。
IronXLライブラリをインストールする
IronXLライブラリをインストールするには、NuGetパッケージマネージャーコンソールを開き、次のコマンドを入力します:

または、NuGetパッケージマネージャーを使用して"IronXL"というパッケージを検索することもできます。これにより、IronXLに関連するNuGetパッケージのリストが表示され、その中から必要なものを選択できます。

Excelファイルをデータテーブルに変換する
次のコードは、パッケージをインストール後にExcelファイルを読み取り、DataTableに変換する方法を示しています。
// Necessary namespaces for IronXL and application namespaces
using IronXL;
using System;
using System.Data;
using System.Windows.Forms;
namespace DataTableWindowsForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// Exports data from an Excel file specified by the user through a file dialog.
/// </summary>
/// <param name="filename">The name of the file to export data from.</param>
private void ExportData(string filename)
{
string importFilePath = string.Empty;
openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
importFilePath = openFileDialog1.FileName;
}
if (!string.IsNullOrEmpty(importFilePath))
{
// Load the Excel document
var excelDoc = WorkBook.Load(importFilePath);
// Select the first worksheet
var worksheet = excelDoc.WorkSheets[0];
// Convert worksheet to a DataTable
DataTable dt = worksheet.ToDataTable();
// Bind DataTable to the DataGridView
dataGridView1.DataSource = dt;
}
}
}
}' Necessary namespaces for IronXL and application namespaces
Imports IronXL
Imports System
Imports System.Data
Imports System.Windows.Forms
Namespace DataTableWindowsForm
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
''' <summary>
''' Exports data from an Excel file specified by the user through a file dialog.
''' </summary>
''' <param name="filename">The name of the file to export data from.</param>
Private Sub ExportData(ByVal filename As String)
Dim importFilePath As String = String.Empty
openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx"
Dim result As DialogResult = openFileDialog1.ShowDialog()
If result = System.Windows.Forms.DialogResult.OK Then
importFilePath = openFileDialog1.FileName
End If
If Not String.IsNullOrEmpty(importFilePath) Then
' Load the Excel document
Dim excelDoc = WorkBook.Load(importFilePath)
' Select the first worksheet
Dim worksheet = excelDoc.WorkSheets(0)
' Convert worksheet to a DataTable
Dim dt As DataTable = worksheet.ToDataTable()
' Bind DataTable to the DataGridView
dataGridView1.DataSource = dt
End If
End Sub
End Class
End Namespace' Necessary namespaces for IronXL and application namespaces
Imports IronXL
Imports System
Imports System.Data
Imports System.Windows.Forms
Namespace DataTableWindowsForm
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
''' <summary>
''' Exports data from an Excel file specified by the user through a file dialog.
''' </summary>
''' <param name="filename">The name of the file to export data from.</param>
Private Sub ExportData(ByVal filename As String)
Dim importFilePath As String = String.Empty
openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx"
Dim result As DialogResult = openFileDialog1.ShowDialog()
If result = System.Windows.Forms.DialogResult.OK Then
importFilePath = openFileDialog1.FileName
End If
If Not String.IsNullOrEmpty(importFilePath) Then
' Load the Excel document
Dim excelDoc = WorkBook.Load(importFilePath)
' Select the first worksheet
Dim worksheet = excelDoc.WorkSheets(0)
' Convert worksheet to a DataTable
Dim dt As DataTable = worksheet.ToDataTable()
' Bind DataTable to the DataGridView
dataGridView1.DataSource = dt
End If
End Sub
End Class
End Namespace上記のコードでは:
- WindowsフォームはExcelファイルをロードして新しいDataTableに変換します。
- 開かれたファイルダイアログを使用してユーザーがExcelファイルを選択できるようにします。
- IronXLの
WorkBook.Load()メソッドを使用してExcelファイルをWorkbookオブジェクトに読み込みます。 - インデックスまたは名前を使用して最初のワークシートを選択します。
ToDataTableメソッドを使用して、ワークシートのデータをDataTableに変換します。- 入力済みのDataTableがWindowsフォームのDataGridViewコントロールのデータソースとして設定されます。
下部では、フォームとボタンがExcelファイルをアプリケーションにロードします。

ユーザーが"Excelのロード"ボタンをクリックすると、ファイルを選択するためのダイアログが表示されます。

選択したファイルを処理し、それをDataTableに変換してDataGridViewにロードします。

IronXLを使用してデータテーブルを使用する方法について学ぶには、この記事をご覧ください。
結論
IronXLは、追加の外部ライブラリに依存しない最も一般的に使用されているExcelアドオンの1つです。 インストールするためにMicrosoft Excelは不要です。自己完結型のプログラムです。 Excelファイルをさまざまな方法で操作できます。 対照的に、Interopライブラリはファイルを解析してWordドキュメントを編集するために他のライブラリを必要とします。
IronXLは、Microsoft Excelドキュメントを使用するプログラミングプロセスのための包括的なソリューションを提供し、計算、並べ替え、統合、ファイルの保存などの操作を含みます。 Excelデータの処理、ファイルの読み書きをより効率的に行うのを簡単にします。
元々、IronXLは$999で販売されていました。 ユーザーは1年間のメンバーシップ料を支払うことにより、ソフトウェアのアップデートとサポートを受け取ることができます。 IronXLはまた、違法な再配布に対する保護を料金で提供しています。 無料試用版を試用するにはここをクリックして、詳細な価格情報をご覧ください。 さらなる情報を得るには、Iron Software ホームページを訪問し、その他のIron Software製品を確認してください。
Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。
