フッターコンテンツにスキップ
IRONXLの使用

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

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

このチュートリアルに従うために、以下が必要です。

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

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

Visual StudioへのIronXLのインストール

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

  1. Microsoft Visual Studioを開きます。
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを開きます。
  3. ソリューションエクスプローラーでプロジェクトを右クリックし、「NuGetパッケージの管理」を選択します。
  4. 「NuGetパッケージマネージャー」ウィンドウで「参照」タブを選択します。
  5. 検索ボックスに「IronXL」と入力し、Enterを押します。
  6. 「IronXL.Excel」を選択し、「インストール」ボタンをクリックします。
  7. ライセンス契約に同意するため「同意する」ボタンをクリックします。
  8. インストールが完了するまで待ちます。

Excelシートからデータを取得する方法、図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シートからデータを取得する方法、図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の値を取得します。

単一行のデータを取得するには、次のコードを使用します。

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ファイルを読み書きし、データをプログラムで操作できます。 Additionally, we can use IronXL to automate Excel tasks, such as generating reports, creating charts, and formatting cells.

IronXLについてもっと知る

IronXLは、ExcelおよびCSVファイルの読み取りと書き込みに便利なライブラリで、小さく覚えやすい関数を使用しています。

このチュートリアルでは、IronXLができることのほんの触りを紹介しました。 IronXL provides a wide range of additional features, such as cell formatting, math functions, and conditional formatting to name a few.

IronXLを使用する際の注目すべき利点

  • Dedicated support from .NET engineers, cross-platform supports, Azure, AWS, and Docker.
  • Microsoft Visual Studioを介した簡単なインストール
  • 開発用の無料トライアル、$799から始まるライセンス
  • C#またはVB.NETプロジェクトへの簡単な統合

よくある質問

C# で HTML を PDF に変換するにはどうすればいいですか?

IronPDF の RenderHtmlAsPdf メソッドを使用して、HTML 文字列を PDF に変換できます。RenderHtmlFileAsPdf を使用して HTML ファイルを PDF に変換することもできます。

Interopを使用せずにC#でExcelシートからデータを取得するにはどうすればよいですか?

IronXLを使用して、ExcelファイルをWorkBookクラスで読み込んで、GetRow()、GetColumn()、GetRange()などのメソッドでデータをアクセスすることにより、C#でExcelシートからデータを取得できます。

C#でExcelファイルを操作するためにIronXLを使用するための前提条件は何ですか?

Microsoft Visual Studio、C#プログラミングの基礎知識、およびNuGetパッケージマネージャーを介してインストールされたIronXLライブラリが必要です。

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

IronXLをインストールするには、Visual Studioを開き、ソリューションエクスプローラーでプロジェクトを右クリックし、『NuGetパッケージの管理』を選択し、『IronXL』を検索してブラウズタブでインストールをクリックします。

IronXLを使用してExcelファイルをどのように読み込むことができるか?

Excelファイルを読み込むには、WorkBookクラスを使用します。例えば、WorkBook workbook = WorkBook.Load("path/to/excel/file.xlsx");

IronXLを使用してワークブックから特定のワークシートをどのように取得できますか?

ワークシートを名前で取得するには: WorkSheet worksheet = workbook.WorkSheets["Sheet1"]; またはインデックスで: WorkSheet worksheet = workbook.WorkSheets[0];

IronXLを使用してセルからデータをどのように抽出しますか?

セルのインデックスを使用して、その値を取得し、例: object value = worksheet["A1"].Value; そしてそれを適切なデータ型にキャストします。

IronXLは.XLSと.XLSXファイルフォーマットの両方に対応していますか?

はい、IronXLは.XLSおよび.XLSXファイルフォーマットの両方でExcelスプレッドシートを読み込んだり、作成したりできます。

IronXLを使用して、一連のセルをどのように抽出しますか?

一連のセルを抽出するには、var cellRange = worksheet.GetRange("A1:B2");を使用し、その値をイテレートします。

IronXLを使用することの利点は何ですか?

IronXLは.NETエンジニアからの専任サポート、クロスプラットフォームサポート、Visual Studio経由の簡単なインストール、無料トライアル、C#またはVB.NETプロジェクトへの簡単な統合を提供しています。

Curtis Chau
テクニカルライター

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

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