IRONXLの使用

C#でExcelシートからデータを取得する方法

リーガン・パン
リーガン・パン
2023年2月26日
更新済み 2024年2月6日
共有:

IronXLは、C#でExcelファイルを操作するためのさまざまな機能を提供する機能豊富なAPIです。 このチュートリアルでは、IronXLを使用してC#でExcelシートからデータを取得する方法を探ります。

このチュートリアルを進めるには、次のものが必要です:

  • マシンにインストールされているMicrosoft Visual Studio
  • C#プログラミングの基本知識
  • プロジェクトにインストールされたIronXLライブラリ

    公式ウェブサイトまたはVisual StudioのNuGetパッケージマネージャーからIronXLをダウンロードできます。

Visual StudioでIronXLをインストールする

C#プロジェクトにIronXLをインストールするには、次の手順に従ってください。

  1. Microsoft Visual Studio を開く。

  2. 新しいプロジェクトを作成するか、既存のプロジェクトを開く。

  3. ソリューションエクスプローラーでプロジェクトを右クリックして、「NuGetパッケージの管理」を選択します。

  4. 「NuGet パッケージ マネージャー」ウィンドウで、「参照」タブを選択します。

  5. 検索ボックスに「IronXL」と入力し、Enterキーを押します。

  6. 「IronXL.Excel」を選択し、「インストール」ボタンをクリックしてください。

  7. 「I Accept」ボタンをクリックしてライセンス契約に同意してください。

  8. インストールが完了するのを待ちます。

    Excelシートからデータを取得する方法(C#)、図1: Visual StudioプロジェクトにおけるIronXLライブラリのインストール

    Visual StudioプロジェクトにIronXLライブラリをインストールする

    次の手順を実行すると、IronXLがインストールされ、C#プロジェクトで使用できるようになります。

ステップ 1: 必要なライブラリをインポートする

以下のサンプルコードを追加して、IronXLライブラリやその他の必要なライブラリをインポートしてください。

using IronXL;
using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
using IronXL;
using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
Imports IronXL
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.Windows.Forms
$vbLabelText   $csharpLabel

IronXL 名前空間を使用すると、IronXL ライブラリを使用してExcelファイルを操作するために必要なすべてのクラスと関数を提供します。

ステップ2:Excelファイルを読み込む

最初のステップはファイルを読み込むことです。IronXL は Excel ファイルを読み込むためにWorkBookクラスを提供しています。WorkBookクラスを使用して、既存のExcelファイルを開いたり、新しいワークブックを作成したりすることができます。

既存のExcelファイルを読み込むには、次のコードを使用してください。

WorkBook workbook = WorkBook.Load("path/to/excel/file.xlsx");
WorkBook workbook = WorkBook.Load("path/to/excel/file.xlsx");
Dim workbook As WorkBook = WorkBook.Load("path/to/excel/file.xlsx")
$vbLabelText   $csharpLabel

このコードは、指定されたExcelファイルをWorkBookオブジェクトに読み込みます。

新しいWorkBookを作成するには、次のサンプルコードを使用してください。

WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
$vbLabelText   $csharpLabel

このコードは指定されたファイル形式(ここではXLSX)で新しいワークブックを作成します。

Excelシートからデータを取得する方法(C#)、図3:IronXLは.XLSおよび.XLSXファイル形式でExcelスプレッドシートをロードおよび作成できます

IronXLは、.XLSおよび.XLSXファイル形式でExcelスプレッドシートを読み込みおよび作成できます

ステップ3:Excelシートを取得

Excelファイルを読み込んだ後、データを取得するExcelシートを指定する必要があります。 WorkBook は複数の WorkSheet オブジェクトを含むことができます。 各WorkSheetは、データにアクセスする前にワークシートの名前を指定する必要があります。

WorkSheet worksheet = workbook.WorkSheets ["Sheet1"];
WorkSheet worksheet = workbook.WorkSheets ["Sheet1"];
Dim worksheet As WorkSheet = workbook.WorkSheets ("Sheet1")
$vbLabelText   $csharpLabel

このコードは、ワークブックから最初のワークシート(ワークシート名がSheet1)を取得します。 インデックスでワークシートを取得する場合、次のコードを使用できます:

WorkSheet worksheet = workbook.WorkSheets [0];
WorkSheet worksheet = workbook.WorkSheets [0];
Dim worksheet As WorkSheet = workbook.WorkSheets (0)
$vbLabelText   $csharpLabel

このコードは、ワークブックから最初のワークシートを取得します。ワークシートが存在することを前提としています。

ステップ 4: Excelシートからデータを取得する

取得したExcelシートからデータにアクセスすることが可能になります。 IronXLは、Excelシートからデータを取得するためのさまざまな方法を提供します。 以下は、最も一般的に使用されるメソッドの一部です。

  • インデクサー演算子 []: 単一のセルの値を取得します。
  • GetRow: 単一行のデータを取得します。
  • GetColumn: 単一の列データを取得します。
  • GetRange: セルの範囲を取得します。

    単一セルの値を取得するには、次のコードを使用します:

object value = worksheet ["A1"].Value;
object value = worksheet ["A1"].Value;
Dim value As Object = worksheet ("A1").Value
$vbLabelText   $csharpLabel

このコードは、ワークシート内のセルA1の値を取得します。

1行のデータを取得するには、以下のコードを使用してください:

var dataRow = worksheet.GetRow(1);
var dataRow = worksheet.GetRow(1);
Dim dataRow = worksheet.GetRow(1)
$vbLabelText   $csharpLabel

このコードは、ワークシートの最初の行のデータを取得します。

データの単一列を取得するには、次のコードを使用してください:

var dataColumn = worksheet.GetColumn(1);
var dataColumn = worksheet.GetColumn(1);
Dim dataColumn = worksheet.GetColumn(1)
$vbLabelText   $csharpLabel

このコードは、ワークシートの最初の列のデータを取得します。

セルの範囲を取得するには、以下のコードを使用します:

var cellRange = worksheet.GetRange("A1:B2");
var cellRange = worksheet.GetRange("A1:B2");
Dim cellRange = worksheet.GetRange("A1:B2")
$vbLabelText   $csharpLabel

このコードは、ワークシート内のセル範囲A1からB2を取得します。

ステップ5: Excelシートからデータを抽出

取得したデータから単一の値を抽出するには、適切なデータ型にキャストする必要があります。

以下のコードは、セルA1から整数値を抽出する方法を示しています:

int value = worksheet ["A1"].IntValue;
int value = worksheet ["A1"].IntValue;
Dim value As Integer = worksheet ("A1").IntValue
$vbLabelText   $csharpLabel

以下のコードを使用して、データの行を抽出できます:

var dataRow = worksheet.GetRow(1);
var values = dataRow.Values;

foreach (var value in values)
{
    int intValue = (int)value;
    // Do something with the extracted value
}
var dataRow = worksheet.GetRow(1);
var values = dataRow.Values;

foreach (var value in values)
{
    int intValue = (int)value;
    // Do something with the extracted value
}
Dim dataRow = worksheet.GetRow(1)
Dim values = dataRow.Values

For Each value In values
	Dim intValue As Integer = CInt(value)
	' Do something with the extracted value
Next value
$vbLabelText   $csharpLabel

このコードは最初の行のデータを抽出し、行内の値を反復処理して各値を整数に変換します。

次に、以下のコードはデータの列を抽出する方法を示しています:

var dataColumn = worksheet.GetColumn(1);
var values = dataColumn.Values;

foreach (var value in values)
{
    string strValue = (string)value;
    // Do something with the extracted value
}
var dataColumn = worksheet.GetColumn(1);
var values = dataColumn.Values;

foreach (var value in values)
{
    string strValue = (string)value;
    // Do something with the extracted value
}
Dim dataColumn = worksheet.GetColumn(1)
Dim values = dataColumn.Values

For Each value In values
	Dim strValue As String = CStr(value)
	' Do something with the extracted value
Next value
$vbLabelText   $csharpLabel

このコードはデータの最初の列を抽出し、列内の値を文字列にキャストしながら反復処理します。

次の例では、範囲内のセルを抽出する方法を示します。

var cellRange = worksheet.GetRange("A1:B2");
var values = cellRange.Values;

foreach (var row in values)
{
    foreach (var value in row)
    {
        // Do something with the extracted value
    }
}
var cellRange = worksheet.GetRange("A1:B2");
var values = cellRange.Values;

foreach (var row in values)
{
    foreach (var value in row)
    {
        // Do something with the extracted value
    }
}
Dim cellRange = worksheet.GetRange("A1:B2")
Dim values = cellRange.Values

For Each row In values
	For Each value In row
		' Do something with the extracted value
	Next value
Next row
$vbLabelText   $csharpLabel

このコードはセル範囲A1からB2までを抽出し、各セルの値を繰り返し処理します。

結論

このチュートリアルでは、IronXLを使用してC#でExcelシートからデータを取得する方法、Excelファイルを読み込む方法、必要なワークシートを取得する方法、ワークシートからデータを取得する方法、データを抽出する方法、データをデータベースにインポートする方法について説明しました。 IronXLは、Excelファイルを操作するための豊富な機能を備えたAPIを提供し、C#アプリケーションにExcelデータを簡単に統合することができます。 IronXLを使用すると、Excelファイルを読み書きし、そのデータとプログラム的に対話することができます。 さらに、IronXLを使用して、レポートの生成、チャートの作成、セルのフォーマットなどのExcelのタスクを自動化できます。

IronXLについて詳しく知る

IronXLは、ExcelおよびCSVファイルの読み書きに便利で使いやすいライブラリであり、小さく覚えやすい関数が特徴です。

このチュートリアルは、IronXL ができることの一部しか紹介していません。 IronXLは、セルのフォーマット数学関数、および条件付き書式設定など、多くの追加機能を提供しています。

IronXLを使用する際の顕著な利点

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