
How to Manage Excel Ranges in C#
プログラム的にExcelファイルを扱うことは、C#アプリケーションの効率と自動化能力を大幅に向上させることができます。 レポートの作成、データの処理、または動的に複雑なスプレッドシートを作成する場合でも、Excelファイルの操作をマスターすることは重要です。 このチュートリアルでは、IronXLを使用してExcel範囲で作業することに焦点を当てます。 Excelファイル内での書き込み、読み取り、および範囲の操作方法について説明します。
How to Read Excel Ranges in C#
- Excelファイルを処理するためにIronXLライブラリをインストールします。
- ワークブックをロードし、ワークシートを指定します。
- 読み取るセル範囲を選択します。
- 指定された範囲からデータを抽出して読み取ります。
IronXLとは?
IronXLは、Excelファイルの作業を簡素化するための、C#用の包括的なライブラリであり、スプレッドシートデータのシームレスな統合と操作のための機能の範囲を提供します。 その機能には、Microsoft Excelのインストールを必要とせずに、Excelファイルの読み取り、書き込み、および変更が含まれ、クロスプラットフォームの互換性を可能にします。
IronXLは、特定のセル、範囲、または全ワークシートからデータを抽出するためを容易にし、フォーマッティング、スタイリング、および条件付きフォーマッティングなどの高度な機能を提供します。 計算、数式、統計分析のサポートにより、IronXLは開発者がプログラムでExcel操作を効率的に処理できるようにし、C#アプリケーション内でのデータ中心のタスクの自動化に不可欠なツールとなります。
Getting Started with Excel Range of cells in C#
まず最初に、アプリケーションにIronXLライブラリをインストールする必要があります。
IronXL NuGetパッケージをインストールする
NuGetパッケージマネージャーを使用して、次のコマンドでIronXLをインストールできます。
上記のコマンドは、すべての依存関係とともにIronXLをインストールします。

名前空間を追加する
Program.csクラスの上部またはIronXLメソッドを使用したい場所に次の名前空間を追加します。
using IronXL;Imports IronXLExcelワークブックをロードする
最初のステップは、Excelワークブックをロードすることです。 次のコードは、アプリケーションでExcelワークブックをロードします。
static void Main(string[] args)
{
// Load an existing Excel workbook
var workbook = WorkBook.Load("test_excel.xlsx");
// Retrieve the specified worksheet from the workbook
var sheet = workbook.GetWorkSheet("Sheet1");
}Sub Main(args As String())
' Load an existing Excel workbook
Dim workbook = WorkBook.Load("test_excel.xlsx")
' Retrieve the specified worksheet from the workbook
Dim sheet = workbook.GetWorkSheet("Sheet1")
End Sub最初の行は、"test_excel.xlsx"という名前のファイルから既存のExcelワークブックをロードします。 2行目は、ロードされたワークブックから"Sheet1"という名前のワークシートを取得します。
このチュートリアルを通して、以下のExcelファイルを使用します。

範囲からデータを読む
次に、指定されたセル範囲からデータを読み取ります。
// Define a range from cell A2 to G10 in the worksheet
var range = sheet["A2:G10"];
// Iterate over each cell in the range and output its value
foreach (var item in range)
{
Console.WriteLine(item);
}' Define a range from cell A2 to G10 in the worksheet
Dim range = sheet("A2:G10")
' Iterate over each cell in the range and output its value
For Each item In range
Console.WriteLine(item)
Next item最初の行は、A2からG10までの特定の範囲アドレスをワークシートで選択し、複数のExcelセルを同時に操作できます。 foreach (var item in range) ループはこのセル範囲内の各セルを反復処理し、効率的なデータ処理を可能にします。
Console.WriteLine(item); を使用することで、コードは各セルの値をコンソールに出力し、範囲の内容を簡単に確認できます。 このアプローチはデータ処理を簡素化し、コードの可読性を向上させます。
範囲でExcelの数式を使用する
特定の範囲を選択し、いくつかのExcelの数式を実装しましょう。
// Define a range from cell F2 to F42 for statistical analysis
var range = sheet["F2:F42"];
// Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}");
// Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}");
// Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {(int)range.Avg()}");Imports System
' Define a range from cell F2 to F42 for statistical analysis
Dim range = sheet("F2:F42")
' Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}")
' Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}")
' Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {CInt(Math.Truncate(range.Avg()))}")コード var range = sheet["F2:F42"]; は F2 から F42 までのセル範囲を選択し、年齢データの統計分析を容易にします。 range.Min() と range.Max() を使用して、指定された範囲内で最小および最大の年齢値を効率よく計算し、人口統計の洞察を得ることができます。
さらに、range.Avg() により平均年齢を算出し、データ解釈のための貴重な統計指標を提供します。 このアプローチはデータ分析タスクを簡素化し、意思決定のために重要な統計情報への迅速なアクセスを提供します。

単一セルからデータを読み取る
単一のセルからデータを読み取りましょう。
// Retrieve the value from cell B2 in the worksheet
var read_from_single_cell = sheet["B2"];
// Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");' Retrieve the value from cell B2 in the worksheet
Dim read_from_single_cell = sheet("B2")
' Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}")コード var read_from_single_cell = sheet["B2"]; はワークシートからセル B2 に格納された値を取得します。 このアプローチを使用すると、Excelファイル内の特定のセル値に簡単にアクセスできます。
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}"); によって、コードは参照セルの取得値をコンソールに出力し、データ検証とデバッグを容易にします。 このアプローチは、Excelファイルから個々のセル値を取得して表示するプロセスを簡素化します。

列全体からデータを読み取る
インデックスを使用して列全体からデータを読み取りましょう。
// Retrieve values from the column at index 2 (C column)
var columnValues = sheet.GetColumn(2); // 2 is column index
// Iterate over each value in the column and output it
foreach (var columnValue in columnValues)
{
Console.WriteLine(columnValue);
}' Retrieve values from the column at index 2 (C column)
Dim columnValues = sheet.GetColumn(2) ' 2 is column index
' Iterate over each value in the column and output it
For Each columnValue In columnValues
Console.WriteLine(columnValue)
Next columnValueコード var columnValues = sheet.GetColumn(2); はワークシートのインデックス 2 (C 列) の列からすべての値を取得します。 これにより、Excelシートの特定の列内のすべての値に効率的にアクセスできます。
foreach ループにより columnValues を反復し、列の各値が Console.WriteLine(columnValue); を使用してコンソールに出力されます。 このアプローチは、Excelファイルからのコラムデータの処理と表示を容易にし、データ分析タスクを合理化します。

あるいは、インデックスの代わりに列名を使用して列からデータを読み取ることもできます。 次の例を考えてみましょう。
// Retrieve values from the column with name "C"
var columnValues = sheet.GetColumn("C");' Retrieve values from the column with name "C"
Dim columnValues = sheet.GetColumn("C")このようにして、いくつかの列を指定することができます。
行全体からデータを読み取る
行番号を使用して行全体からデータを読み取りましょう。
// Retrieve values from the row at index 1 (Row 2)
var rowValues = sheet.GetRow(1); // 1 is row index
// Iterate over each value in the row and output it
foreach (var rowValue in rowValues)
{
Console.Write(rowValue + " ");
}' Retrieve values from the row at index 1 (Row 2)
Dim rowValues = sheet.GetRow(1) ' 1 is row index
' Iterate over each value in the row and output it
For Each rowValue In rowValues
Console.Write(rowValue & " ")
Next rowValueコード var rowValues = sheet.GetRow(1); はワークシートのインデックス 1 (2行目) の単一行からすべての値を取得し、行特定のデータに効率よくアクセスできます。 foreach ループにより rowValues を反復し、行の各値が Console.Write(rowValue + " "); を使用してコンソールに出力されます。
このアプローチは、Excelファイルからの行データの抽出と表示を簡素化し、データ分析とレポート作成タスクを支援します。 このようにして、範囲指定なしで複数のセルから値を読み取ることができます。

セルまたは範囲にデータを書き込む
セルと範囲の両方にデータを書き込むことができます。 まず最初に、範囲にデータを書き込みます。
// Select a range from D2 to D14 for modification
var range = sheet["D2:D14"];
// Set the value for each cell in the range
range.Value = "Prefer Not to Say"; // Change Gender Value
// Save the modified workbook to persist changes
workbook.Save();' Select a range from D2 to D14 for modification
Dim range = sheet("D2:D14")
' Set the value for each cell in the range
range.Value = "Prefer Not to Say" ' Change Gender Value
' Save the modified workbook to persist changes
workbook.Save()コード var range = sheet["D2:D14"]; はセル D2 から D14 までの範囲を選択し、データの一括変更を可能にします。 range.Value を "Prefer Not to Say" に設定することで、指定された範囲内の各セルの性別値を効率よく更新し、反復作業を最小限に抑えます。
その後の workbook.Save(); コマンドは、これらの変更を永続的に保存し、データの一貫性と整合性を維持します。 このアプローチはバッチ更新を簡素化し、複数のセルでの均一性を確保し、データ管理の効率を向上させます。
次に、特定のセルにデータを書き込みましょう。
// Set the value for cell B2
sheet["B2"].Value = "John";
// Save the workbook to persist the changes
workbook.Save();' Set the value for cell B2
sheet("B2").Value = "John"
' Save the workbook to persist the changes
workbook.Save()コード sheet["B2"].Value = "John"; は Excel ワークシートのセル B2 に直接"John"という値を割り当て、特定のセル値を更新するための簡潔で直感的な方法を提供します。 このアプローチは、個々のセルコンテンツの修正プロセスを簡素化し、コードの可読性と効率を向上させます。

結論
結論として、C#でIronXLを使ったExcel範囲操作をマスターすることは、アプリケーションの効率と自動化機能を大幅に向上させ、データ処理、レポート生成、動的スプレッドシートの作成などのタスクを容易にします。
IronXLの強力な機能により、Excelファイルの読み書きや操作を簡素化し、数式、書式設定、統計分析などの高度な機能を活用できます。 さらに、IronXLは無料トライアルも提供しており、さまざまなプロジェクト要件に柔軟性と拡張性を確保します。

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



