IRONXLの使用

C#によるExcelデータの読み取りとデータベースへの挿入

リーガン・パン
リーガン・パン
2023年5月1日
更新済み 2024年3月24日
共有:

この記事では、C# ExcelライブラリであるIronXLを使用して、Excelファイルからデータを読み込み、データベーステーブルに挿入する方法を探ります。

1. IronXL

IronXL は、.NET 開発者向けに設計された強力なソフトウェアライブラリであり、.NET アプリケーション内で Excel ファイルを読み取り、書き込み、操作するための使いやすい API を提供します。 これは、Excelスプレッドシートの作成、編集、およびエクスポートのための包括的な機能セットを提供します。ターゲットマシンにMicrosoft OfficeやExcelをインストールする必要はありません。XLS、XLSX、CSV、TSV、およびその他の多くのファイル形式をサポートしており、このライブラリは開発者がどこにでも展開できるExcelベースのアプリケーションを簡単に作成できるようにします。 IronXLはまた、グラフ作成、データ可視化、データ分析などの高度な機能を提供し、中小規模から大規模までのプロジェクトの開発プロセスを合理化します。

2. 前提条件

Excelファイルからデータベースに書き込むためにIronXLライブラリを使用する前に、いくつかの前提条件を満たす必要があります。 これには以下が含まれます:

  • C#プロジェクトを作成するには、コンピュータにVisual Studioがインストールされている必要があります。
  • C#プロジェクトを作成する前に、システムにASP.NETがインストールされていることを確認してください。
  • データをエクスポートするためにIronXLライブラリをシステムにインストールする。 それはVisual StudioのNuGetパッケージマネージャーからIronXL NuGetパッケージをダウンロードすることで取得できます。
  • Visual StudioにSQLをインストールする。

Visual Studio で新しいプロジェクトを作成する方法

IronXLライブラリを使用してExcel関連の操作を実行する前に、Visual Studioで.NETプロジェクトを作成する必要があります。 どのバージョンのVisual Studioでも互換性がありますが、最新バージョンを使用することをお勧めします。 プロジェクトの要件に基づいて、Windows FormsやASP.NETなどのさまざまなプロジェクトテンプレートから選択できます。 このチュートリアルでは、IronXLの使用方法を示すために、コンソールアプリケーションプロジェクトテンプレートを使用することをお勧めします。

Excelデータを読み取ってC#のデータベーステーブルに挿入する方法、図1:新しいプロジェクトウィンドウを作成

新しいプロジェクトを作成

プロジェクトの種類を選択したら、プロジェクトに名前を付けて、その場所を選択する必要があります。 プロジェクトに対して、.NET Core 6などの希望するフレームワークを指定することもできます。

Excelデータを読み取り、C#でデータベーステーブルに挿入する方法、図2:プロジェクト構成

プロジェクト構成

新しいプロジェクトが作成された後、コードを書いてアプリケーションを実行することができるprogram.csファイルにアクセスできます。

Excelデータを読み取りデータベーステーブルに挿入する方法(C#)、図3:コードが開いたプロジェクト

コードを開いてプロジェクト

Visual Studioプロジェクトが作成されたので、IronXLをインストールしましょう。

4. IronXLのインストール

IronXLライブラリはさまざまな方法でダウンロードしてインストールできますが、この記事では最も簡単な方法である2つの方法について説明します。

  • Visual StudioでNuGetパッケージを使用する。
  • Visual Studio コマンドラインの使用。

Visual Studioを使用する方法

IronXLライブラリをインストールするには、最初の方法としてVisual StudioのNuGetパッケージマネージャーを使用します。 NuGetパッケージマネージャーを開いて、参照タブでIronXLを検索してください。 検索結果でIronXLを見つけたら、それを選択してインストールを続行します。 インストールが完了したら、プロジェクトでIronXLライブラリを使用し始めることができます。

次のスクリーンショットは、Visual StudioでNuGetパッケージマネージャーを開く方法を示しています。

Excelデータを読み取り、C#でデータベーステーブルに挿入する方法、図4: NuGetパッケージマネージャー

NuGet パッケージ マネージャー

次のスクリーンショットは検索結果におけるIronXLを示しています:

Excelデータを読み取り、データベーステーブルに挿入する方法(C#)、図5: IronXL検索結果

IronXL 検索結果

4.2 Visual Studio コマンドラインの使用

多くの開発者はコマンドラインインターフェースを使用してパッケージをインストールすることを好みます。 コマンドラインを使用してIronXLをインストールするには、次の手順に従ってください:

  • Visual Studio で、ツール > NuGet パッケージ マネージャー > パッケージ マネージャー コンソール に移動します。
  • パッケージマネージャーコンソールタブに次の行を入力してください:
  :ProductInstall

パッケージは現在のプロジェクトにダウンロードされ、インストールされます。

Excelデータを読み取り、C#でデータベーステーブルに挿入する方法, 図6: コマンドラインを介してインストール

コマンドライン経由でのインストール

SQL Server データベースのインストールおよび構成

SQLサーバーデータベーステーブルをC#プロジェクトにインストールして統合するには、まずNuGetパッケージマネージャーに移動し、System.Data.SqlClientを検索してインストールします。

Excelデータを読み取り、データベーステーブルに挿入する方法(C#)、図7: NuGetパッケージマネージャーUIでSqlClientを検索してインストール

NuGet パッケージ マネージャー UI で SqlClient を検索してインストールします

インストールが完了したら、プロジェクトメニューに移動し、「新しい項目の追加」をクリックしてください。

C#でExcelデータを読み込みデータベーステーブルに挿入する方法, 図8: 新規項目の追加

新しいアイテムを追加

新しいウィンドウが表示されます。 サイドメニューからデータを選択し、リストから「サービスベースのデータベース」をクリックします。データベースに適切な名前を付け、「追加」ボタンをクリックしてください。

Excelデータを読み取りデータベーステーブルに挿入する方法 (C#)、図9: サービスベースのデータベースの選択

サービスベースのデータベースを選択

次に、ソリューションエクスプローラーで新しく作成されたデータベースを右クリックし、「開く」を選択します。 これにより、新しいサイドバーが開きます。

C#でExcelデータを読み込み、データベーステーブルに挿入する方法、図10: 右クリックして「開く」を選択

右クリックして「開く」を選択

新しいサイドバーで、データベースをクリックしてプロパティに移動します。 そこから、接続文字列をコピーします。

C#でExcelデータを読み取りデータベーステーブルに挿入する方法、図11: 右クリックしてプロパティを選択

右クリックしてプロパティを選択

C#でExcelデータを読み取りデータベーステーブルに挿入する方法、図12: 接続文字列の処理

接続文字列の処理

接続設定をコピーした後、データベースインスタンスをクリックして新しいリストを開きます。テーブルフォルダを右クリックして、「新しいテーブルを追加」を選択します。

Excelデータを読み取り、C#のデータベーステーブルに挿入する方法、図13: 新しいテーブルを追加

新しいテーブルを追加

データベースに新しいテーブルを作成するには、次の手順に従ってください。

  1. 新しいデータテーブルデザインページを開きます。

  2. 以下のSQLクエリを追加して、IdNameNumberの3つの列を持つ新しいテーブルを作成します。

  3. ページの上部にある「更新」ボタンをクリックしてください。

  4. 新しく生成されたテーブルがデータベースに追加されます。
CREATE TABLE [dbo].[Table]
(
  [Id] INT NOT NULL PRIMARY KEY,
  [Name] varchar(100) NOT NULL,
  [number] INT
)
CREATE TABLE [dbo].[Table]
(
  [Id] INT NOT NULL PRIMARY KEY,
  [Name] varchar(100) NOT NULL,
  [number] INT
)
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'CREATE TABLE [dbo].[Table] ([Id] INT @NOT NULL PRIMARY KEY, [Name] varchar(100) @NOT NULL, [number] INT)
$vbLabelText   $csharpLabel

SQL環境のセットアップが完了したので、Excelデータからこのデータベースを埋めるためのサンプルデータを作成しましょう。

C#でExcelデータを読み取ってデータベーステーブルに挿入する方法、図14: Excelファイルデータ

Excelファイルデータ

ExcelファイルのデータをIronXLを使用してデータベースにインポートおよびエクスポート

IronXLを使用すると、開発者はExcelファイルとデータベース間のデータ転送プロセスを自動化でき、大幅な時間と労力を節約できます。 IronXL を利用することにより、開発者はワークフローを合理化し、手動でのデータ入力の必要性を排除して、データの正確性と最新性を確保できます。

SQLサーバーがセットアップされ、接続文字列がコピーされたら、以下のコードに接続文字列を貼り付け、エクセルファイルをコードにリンクし、必要に応じてSQLクエリを変更してください。 次に、単にコードを実行すると、データがデータベーステーブルにエクスポートされます。

using IronXL;
using System.Data;
using System.Data.SqlClient;

WorkBook workBook = WorkBook.Load("book.xlsx");

DataSet dataSet = workBook.ToDataSet();

string sql = "SELECT * FROM [dbo].[Table]";

string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\USERS\BUTTW\SOURCE\REPOS\CREATE PDF\CREATE PDF\DATABASE1.MDF;Integrated Security=True";

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
    adapter.Update(dataSet);
}
using IronXL;
using System.Data;
using System.Data.SqlClient;

WorkBook workBook = WorkBook.Load("book.xlsx");

DataSet dataSet = workBook.ToDataSet();

string sql = "SELECT * FROM [dbo].[Table]";

string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\USERS\BUTTW\SOURCE\REPOS\CREATE PDF\CREATE PDF\DATABASE1.MDF;Integrated Security=True";

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
    adapter.Update(dataSet);
}
Imports IronXL
Imports System.Data
Imports System.Data.SqlClient

Private workBook As WorkBook = WorkBook.Load("book.xlsx")

Private dataSet As DataSet = workBook.ToDataSet()

Private sql As String = "SELECT * FROM [dbo].[Table]"

Private connectionString As String = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\USERS\BUTTW\SOURCE\REPOS\CREATE PDF\CREATE PDF\DATABASE1.MDF;Integrated Security=True"

Using connection As New SqlConnection(connectionString)
	connection.Open()
	Dim adapter As New SqlDataAdapter(sql, connection)
	adapter.Update(dataSet)
End Using
$vbLabelText   $csharpLabel

データがデータベースに正常にエクスポートされたかどうかを確認するには、再度テーブルディレクトリを右クリックし、「New Query」をクリックします。新しいページが開きますので、上部のバーからデータベースを選択し、データを取得するための適切なSQLクエリを実行してください。

SELECT * FROM [dbo].[Table]

緑色のボタンを押すと、結果が一瞬で表示されます。

Excelデータを読み取り、C#でデータベーステーブルに挿入する方法、図15:データベースデータ

データベースデータ

以下は、Microsoft Excelファイルからインポートしたデータをデータベースに書き込む方法です。

7. 結論

多くのアプリケーションにおいて、Excelスプレッドシートを扱うことは一般的な作業です。Excelシートからデータベーステーブルにデータを挿入することで、データ管理プロセスを効率化することができます。 このタスクをC#で達成する一つの方法は、IronXLのようなExcelファイルの読み取りと操作を可能にするライブラリを使用することです。 このライブラリを利用することにより、開発者はExcelシートからデータを簡単に抽出してデータベーステーブルに挿入できるため、データ管理プロセスが簡素化され、エラーの発生率が減少します。 この記事では、IronXLライブラリを使用して、ExcelファイルからSQL Serverデータベース内のSQL Serverテーブルにデータを追加する手順について説明します。 また、IronXLライブラリの簡単な紹介を提供し、データを挿入するために必要な前提条件について説明し、新しいプロジェクトをVisual Studioで作成し、IronXLをインストールし、SQL Serverデータベースを構成する方法について説明します。 以下のチュートリアルをご覧になり、C#でExcelファイルを読む方法を学んでください。

さらに、IronXL は、高度な機能を提供しており、テキストの配置、フォントサイズ、色フリーズペインの追加数式の追加条件付き書式の適用パスワードによる暗号化などをサポートしています。

ユーザーはIron Suiteからも恩恵を受けることができ、これにはIronPDF、IronOCR、IronXL、IronBarcode、IronWebscraperといったソフトウェア開発ツールのコレクションが含まれています。

リーガン・パン
ソフトウェアエンジニア
レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
ASP.NET CoreでデータテーブルをExcelにエクスポートする方法
次へ >
C#でデータセットをExcelに変換する方法