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

C#でExcelファイルをインポートする方法

Microsoft Excel は、データの整理、プレゼンテーション、および分析を支援する多用途のスプレッドシート ソフトウェアです。 しかし、C# で Excel をプログラムで操作するのは困難です。 IronXL ソフトウェア ライブラリを使用して、C# で Excel ファイルをインポートして読み取ることができます。

IronXL - Excelライブラリ

IronXL は、ユーザーの使いやすさ、正確さ、スピードを重視した .NET Excel ライブラリです。 Excel ドキュメントをインポートして読み取り、Excel ファイルを効率的に作成および編集でき、パフォーマンスが非常に高速です。 MS Office Interop なしで動作します。つまり、Excel がインストールされていなくても、Excel ファイルを読み取るためのすべての機能を提供します。 これにより、IronXL は C# で Excel ファイルをインポートして読み込むための強力なツールです。

IronXL は Windows、Linux、MacOS、Docker、Azure、AWS などすべてのプラットフォームで利用可能です。 すべての .NET Framework と互換性があります。 IronXL は、コンソール、デスクトップ、および Web ASP.NET アプリケーションに統合できる多用途のライブラリです。 XLS や XLSX ファイル、XSLT や XLSM、CSV、TSV など、さまざまなワークブック形式をサポートしています。

いくつかの重要な機能

C# で Excel ワークブックをインポートする方法

前提条件

C# で Excel ファイルを読み取るために IronXL を使用するには、次のコンポーネントがコンピュータにインストールされていることを確認してください。

1.Visual Studio - C# .NET アプリケーションを開発するための公式 IDE です。 Visual Studio はMicrosoft のウェブサイトからダウンロードしてインストールできます。 2.IronXL - これは C# の指定されたパスで Excel シートを操作するのに役立つライブラリです。 使用する前に C# プログラムにインストールする必要があります。 IronXL は NuGet のウェブサイトから、または Visual Studio ツールの「NuGet パッケージの管理」でダウンロードできます。 また、.NET Excel DLLファイルを直接ダウンロードすることもできます。

必要な名前空間の追加

Visual Studio と IronXL をインストールしたら、IronXL をソースコードで使用するために IronXL アセンブリを参照します。 IronXL 関数が使用される新しいプロジェクトのファイルの上部に次のコード行を追加します。

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

C&num で既存の Excel ファイルを開く

Microsoft Excel スプレッドシートは、Excel ワークブックとも呼ばれます。 各ワークブックには複数のワークシートが含まれており、1 つのワークシートには値を持つ表形式のセルが含まれています。 To open and read an Excel file, it should be loaded using the WorkBook class and Load method present in the IronXL library. コードは次の通りです:

// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
' Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
$vbLabelText   $csharpLabel

これは、ワークブック インスタンス参照変数で Excel ファイルを開きます。 複数のワークシートを持つことができるため、特定のワークシートまたはすべてを一度に開くために使用できます。 次のコードは、シート インスタンス変数で最初のワークシートを開きます。

WorkSheet sheet = workbook.WorkSheets.First();
WorkSheet sheet = workbook.WorkSheets.First();
Dim sheet As WorkSheet = workbook.WorkSheets.First()
$vbLabelText   $csharpLabel

これにより、Excel ファイルの最初のシートが開き、Excel データはこのシートに読み書きできるようになります。

開いた Excel ファイル

C# での Excel ファイルのインポート方法、図 1: Excel ファイル Excel ファイル

インポートされた Excel ファイルからデータを読み取る

Excel ファイルをインポートすると、データの読み取りが可能になります。 IronXL を使用して C# で Excel ファイル データを読み取ることは非常に簡単で簡単です。 セル参照番号を指定するだけで、Excel セルの値を読み取ることができます。

次のコードは、参照番号 "C2" のセルの値を取得します。

// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);
// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);
' Select cells easily in Excel-notation and return the value
Dim cellValue As Integer = sheet("C2").IntValue

' Display the value
Console.WriteLine(cellValue)
$vbLabelText   $csharpLabel

出力は以下の通りです。

C# での Excel ファイルのインポート方法、図 2: Excel の読み取り Excel の読み取り

Now, let's read data from a range of cells in the opened Excel file. コードは次の通りです:

// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from a range of cells elegantly.
For Each cell In sheet("A2:A6")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

コードは非常にシンプルでクリーンでクリアです。 foreach ループで示されているように、簡単な構文でセルの範囲を参照できます: sheet["A2:A6"] 各セルを反復してその値を取得できます。 ここでは、コンソール出力で 2 行目から 6 行目までの A 列の名前が表示されます。

C# での Excel ファイルのインポート方法、図 3: セル範囲の読み取り セル範囲の読み取り

セル値の読み取りと書き込みの詳細については、このチュートリアルを参照してください C# の Excel ファイルの読み取り例

Excel ファイルからすべてのデータをインポート

IronXL を使用すると、行と列のインデックスを使用して一度に Excel シートを読み取ることができます。 次の IronXL コード サンプルは、コンソール出力で同じ形式で Excel ファイル全体のデータを取得するのに役立ちます。

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}
Imports Microsoft.VisualBasic

Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
Dim sheet As WorkSheet = workbook.WorkSheets.First()

' Traverse all rows of Excel WorkSheet
For i As Integer = 0 To sheet.Rows.Count() - 1
	' Traverse all columns of specific Row
	For j As Integer = 0 To sheet.Columns.Count() - 1
		' Get the values
		Dim val As String = sheet.Rows(i).Columns(j).Value.ToString()
		Console.Write("{0}" & vbTab, val)
	Next j
	Console.WriteLine()
Next i
$vbLabelText   $csharpLabel

出力ファイル

C# での Excel ファイルのインポート方法、図 4: Excel ファイルを読み取るための出力コンソール Excel ファイルを読み取るための出力コンソール

画像の代替テキストを追加。

概要

この記事では、Microsoft Excel がインストールされていない状態で Excel ファイルをインポートして読み込む方法を説明しました。 その後、Excel スプレッドシートからデータを読み取る複数の方法が検討されました。 IronXL を使用すると、Excel がインストールされていなくても C# で Excel ファイルを作成できます。

IronXL はプログラムで実装されるすべての Microsoft Excel ドキュメント関連タスクのためのオールインワンソリューションを提供します。 数式の計算、文字列または数値の並べ替え、トリミングと追加、検索と置換、マージとアンマージ、ファイルの保存などを実行できます。セル値を編集し、スプレッドシートデータの検証と並んでセルデータ形式を設定することもできます。 また、CSV ファイルをサポートしており、Excel データを操作するのと同様に作業できます。

IronXL is available for a free trial and can be ライセンスを取得することができ (Lite パッケージはわずか $799 から) 商用利用が可能です。

よくある質問

Interopを使わずにC#でExcelファイルをインポートして読むにはどうすればよいですか?

C#でIronXLライブラリを使ってExcelファイルをインポートして読むことができます。WorkBook.Load("file.xlsx")を使ってExcelファイルをロードし、Microsoft Excelをインストールせずにデータにアクセスして処理できます。

IronXLライブラリはどのプラットフォームに対応していますか?

IronXLはすべての.NETフレームワークと互換性があり、Windows、Linux、MacOS、Docker、Azure、AWSなどの複数のプラットフォームで使用できます。

Microsoft ExcelをインストールせずにIronXLを使用してExcelファイルを編集できますか?

はい、IronXLを使用すると、C#でプログラム的にExcelファイルを作成および編集でき、Microsoft Excelをシステムにインストールする必要はありません。

IronXLが対応するExcel形式は何ですか?

IronXLはXLS、XLSX、CSV、TSVなど、さまざまなExcelファイル形式をサポートしており、データのインポートや操作が容易です。

C#プロジェクトでIronXLを使用するための前提条件は何ですか?

IronXLを使用するには、Visual Studioがインストールされていることを確認してください。NuGetパッケージマネージャーを介して、または.NET Excel DLLをダウンロードして参照することで、プロジェクトにIronXLを追加できます。

C#でIronXLを使ってExcelワークブックをロードするにはどうすればよいですか?

C#でExcelワークブックをロードするには、IronXLのWorkBook.Load("path/to/file.xlsx")メソッドを使用して、ワークブックを開いて操作できます。

IronXLでExcelの数式を処理できますか?

はい、IronXLはシートが編集されるたびにExcelの数式をシームレスに処理および再計算し、データ計算の精度を保証します。

IronXLを使用して特定のセルからデータを読み取るにはどうすればよいですか?

特定のセルからデータを読み取るには、sheet["B2"].StringValueのようなIronXLの構文を使用してセルB2の値を取得します。

IronXLを使用してExcelシートのセル範囲を反復処理できますか?

はい、foreach (var cell in sheet["A1:C3"])のような構文を使用してIronXLでセル範囲を反復処理できます。

IronXLをASP.NETアプリケーションに統合するにはどうすればよいですか?

IronXLは、NuGet経由でライブラリを追加し、プロジェクトで参照することでASP.NETアプリケーションに簡単に統合できます。

Curtis Chau
テクニカルライター

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

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