フッターコンテンツにスキップ
IRONXLの使用
C#を使用してOLEDBなしでExcelをDataTableに変換する方法 | IronXL

Oledbを使用せずにC#でExcelからデータテーブルに変換する方法

Microsoft Excel は、Microsoftによって作成された強力なスプレッドシートプログラムです。 これは、データの整理、分析、および視覚化のために広く使用されているツールです。 これはMicrosoftのOfficeスイートの一部です。 そのさまざまな機能により、Excelはプロフェッショナル、個人、組織、大学によって使用される多用途なツールです。

Excelは、金融、会計、ビジネス分析、データ分析、研究、教育など、幅広い分野で広く使用されています。 その多様性と豊富な機能セットにより、個人およびプロフェッショナルな状況でのデータの整理、評価、および提示に適したツールです。 この記事では、OLEDB接続なしでC#でExcelをDataTableに変換します。

OLEDBなしでC#でExcelをDataTableに変換する方法

  1. 新しいVisual Studioプロジェクトを作成します。
  2. 必要なライブラリをインストールします。
  3. Excelファイルをオブジェクトに読み込みます。
  4. 特定の方法を使用してExcelシートのデータをDataTableに変換します。
  5. 必要に応じて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を開くには、メニューからファイルをクリックし、「新しいプロジェクト」を選択します。次に、「Windowsフォームアプリケーション」を選びます。

C#でExcelをDataTableに変換する方法 OLEDBなし: 図1

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

C#でExcelをDataTableに変換する方法 OLEDBなし: 図2

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

C#でExcelをDataTableに変換する方法 OLEDBなし: 図3

次に、必要なライブラリを追加してコードをテストします。

IronXLライブラリをインストールする

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

Install-Package IronXL.Excel

C#でExcelをDataTableに変換する方法 OLEDBなし: 図4

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

C#でExcelをDataTableに変換する方法 OLEDBなし: 図5

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
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
$vbLabelText   $csharpLabel

上記のコードでは:

  • WindowsフォームはExcelファイルをロードして新しいDataTableに変換します。
  • 開かれたファイルダイアログを使用してユーザーがExcelファイルを選択できるようにします。
  • IronXL の WorkBook.Load() メソッドを使用して、ExcelファイルをWorkbookオブジェクトにロードします。
  • インデックスまたは名前を使用して最初のワークシートを選択します。
  • ワークシートデータをDataTableに変換するために ToDataTable メソッドを使用します。
  • 入力済みのDataTableがWindowsフォームのDataGridViewコントロールのデータソースとして設定されます。

下部では、フォームとボタンがExcelファイルをアプリケーションにロードします。

C#でExcelをDataTableに変換する方法 OLEDBなし: 図6

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

C#でExcelをDataTableに変換する方法 OLEDBなし: 図7

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

C#でExcelをDataTableに変換する方法 OLEDBなし: 図8

IronXLを使用してデータテーブルを使用する方法について学ぶには、この記事をご覧ください。

結論

IronXLは、追加の外部ライブラリに依存しない最も一般的に使用されているExcelアドオンの1つです。 インストールするためにMicrosoft Excelは不要です。自己完結型のプログラムです。 Excelファイルをさまざまな方法で操作できます。 対照的に、Interopライブラリはファイルを解析してWordドキュメントを編集するために他のライブラリを必要とします。

IronXLは、Microsoft Excelドキュメントを使用するプログラミングプロセスのための包括的なソリューションを提供し、計算、並べ替え、統合、ファイルの保存などの操作を含みます。 Excelデータの処理、ファイルの読み書きをより効率的に行うのを簡単にします。

元々、IronXLは$799で価格設定されていました。 ユーザーは1年間のメンバーシップ料を支払うことにより、ソフトウェアのアップデートとサポートを受け取ることができます。 IronXLはまた、違法な再配布に対する保護を料金で提供しています。 無料試用版を試用するにはここをクリックして、詳細な価格情報をご覧ください。 Visit the Iron Software home page for further information on other Iron software products.

よくある質問

OLEDBを使用せずにC#でExcelデータをDataTableに変換するにはどうすれば良いですか?

OLEDBを使用せずにC#でExcelデータをDataTableに変換するには、IronXLライブラリを使用します。まず、新しいVisual StudioプロジェクトをセットアップしてIronXLをインストールします。WorkBook.Load()メソッドでExcelファイルをロードし、ワークシートを選択してからToDataTableメソッドを使用してデータを変換します。

Excel操作においてIronXLをMicrosoft Interopよりも使用する利点は何ですか?

IronXLは優れたパフォーマンスを提供し、リソース効率が高く、Excelファイルの操作プロセスを簡素化します。Microsoft Excelのインストールを必要としないため、さまざまなOfficeバージョンとの互換性問題を回避できます。

C#プロジェクトにIronXLをインストールするにはどうすればよいですか?

IronXLはVisual StudioのNuGetパッケージマネージャーコンソールを開き、コマンドInstall-Package IronXLを実行することでC#プロジェクトにインストールできます。あるいは、NuGetパッケージマネージャーでIronXLを検索し、直接インストールすることもできます。

IronXLを使用するのにMicrosoft Excelをインストールする必要がありますか?

いいえ、IronXLを使用するのにMicrosoft Excelをインストールする必要はありません。このライブラリはExcelと独立して機能し、依存性や互換性の問題を排除します。

IronXLを使用してExcelをDataTableに変換する利点は何ですか?

IronXLを使用することで、優れたパフォーマンスで使いやすく、追加のソフトウェアをインストールする必要がありません。この方法により、.NETアプリケーションでのExcelファイルの効率的な操作が可能になります。

IronXLはさまざまなプラットフォームでExcelファイルを扱えますか?

はい、IronXLはプラットフォームに依存せず、特定のMicrosoft Excelバージョンを必要とせずに異なる環境でExcelファイルを扱うことができます。

購入前にIronXLを試用する方法はありますか?

はい、IronXLはユーザーが購入前に機能を試すことができる無料試用版を提供しています。詳細情報と試用版のダウンロードはIronXLのウェブサイトでご確認いただけます。

IronXLを使用することで特に恩恵を受けるプロジェクトの種類は何ですか?

Excelデータの操作を含むプロジェクト、データ分析、ビジネスインテリジェンスアプリケーション、およびExcelファイル処理を必要とするあらゆる.NETアプリケーションにとって、IronXLから大きな恩恵を受けることができます。

IronXLはExcelファイルの操作をどのようにプログラム的に管理しますか?

IronXLは、開発者がインストールされたExcelコンポーネントに頼ることなしに、その直感的なAPIを通してExcelファイルをプログラム的に読み込み、読み取ったり、操作したりすることを可能にし、.NETアプリケーションにとって効率的なツールとなります。

Curtis Chau
テクニカルライター

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

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