フッターコンテンツにスキップ
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 など、さまざまなワークブック形式をサポートしています。

いくつかの重要な機能

  • XLS/CSV/TSV/XLSX ファイルなどのさまざまなスプレッドシート形式から Excel ファイルを開いてデータを読み取り、検索します。
  • Excel ワークシートを XLS/XLSX/CSV/TSV/JSON にエクスポート。
  • .XLSM/XLTX/XLSX ファイルをパスワードで暗号化および復号します。
  • Excel シートを System.Data.DataSet および System.Data.DataTable オブジェクトとしてインポートします。
  • Excel ファイルの数式は、シートが編集されるたびに再計算されます。
  • WorkSheet["A1:B10"] の簡単な構文で直感的なセル範囲設定が可能です。
  • セルの範囲、列、および行を並べ替えます。
  • セルのスタイリング - フォント、フォントサイズ、背景色、境界線、配置、および番号形式

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#で既存のExcelファイルを開く

Microsoft Excel スプレッドシートは、Excel ワークブックとも呼ばれます。 各ワークブックには複数のワークシートが含まれており、1 つのワークシートには値を持つ表形式のセルが含まれています。 Excel ファイルを開いて読み取るには、IronXL ライブラリに存在する WorkBook クラスと Load メソッドを使用して読み込む必要があります。 コードは次の通りです:

// 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

This opens the Excel file in the workbook instance reference variable. 複数のワークシートを持つことができるため、特定のワークシートまたはすべてを一度に開くために使用できます。 次のコードは、シート インスタンス変数で最初のワークシートを開きます。

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 の読み取り

次に、開かれた Excel ファイルの範囲からデータを読み取ります。コードは次のようになります。

// 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 は、無料試用版が利用可能で、ライセンスを取得することができ (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の値を取得します。

{"S":"IronXL\u3092\u4f7f\u7528\u3057\u3066Excel\u30b7\u30fc\u30c8\u306e\u30bb\u30eb\u7bc4\u56f2\u3092\u53cd\u5fa9\u51e6\u7406\u3067\u304d\u307e\u3059\u304b\uff1f"}

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

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

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

カーティス・チャウ
テクニカルライター

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

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