IRONXLの使用

C#でExcel範囲を管理する方法

公開済み 2024年9月29日
共有:

以下の内容を日本語に翻訳してください:

Working with 
```[Excelファイル](https://www.microsoft.com/en/microsoft-365/excel?market=af)プログラムによって、あなたのC#アプリケーションの効率と自動化機能を大幅に向上させることができます。 レポートを生成したり、データを処理したり、動的に複雑なスプレッドシートを作成したりする場合でも、Excelファイルの操作を習得することは非常に重要です。 このチュートリアルでは、Excel範囲を使用した作業に焦点を当てます[IronXL](/csharp/excel/). カバーする内容について説明します。[以下の内容を日本語に翻訳してください:

書く](/csharp/excel/examples/create-excel-spreadsheet/), [読込](/csharp/excel/examples/read-excel/)、および[範囲を操作する](/csharp/excel/examples/combine-excel-ranges/)Excelファイル内で。

## C#でExcel範囲を読み取る方法

1. Excelファイルを処理するためにIronXLライブラリをインストールします。

2. ワークブックを読み込み、ワークシートを指定します。

3. 読み取るセル範囲を選択します。

4. 指定された範囲からデータを抽出して読み取ります。

## IronXLとは何ですか?

[IronXL](/csharp/excel/)は、Excelファイルを操作するためのC#用の包括的なライブラリであり、スプレッドシートデータの統合と操作をスムーズに行うためのさまざまな機能を提供します。 その機能には以下が含まれます[読込み](/csharp/excel/how-to/c-sharp-read-xlsx-file/), [文章作成](/csharp/excel/tutorials/csharp-open-write-excel-file/)、および[変更](/csharp/excel/how-to/csharp-edit-excel-file/)Microsoft Excelのインストールを必要とせずにExcelファイルを使用できるようにし、クロスプラットフォームの互換性を実現します。

IronXLは、特定のデータの抽出を容易にします。[セル](/csharp/excel/tutorials/how-to-read-excel-file-csharp/), [範囲](/csharp/excel/examples/select-excel-range/)、またはワークシート全体、高度な機能を含む[フォーマット](/csharp/excel/how-to/set-cell-data-format/), [スタイリング](/csharp/excel/examples/excel-style-cells-borders-fonts/)、および[条件付き書式設定](/csharp/excel/examples/excel-conditional-formatting/). 計算、数式、および統計分析をサポートするIronXLは、開発者がプログラムでExcel操作を効率的に処理できるようにし、C# アプリケーション内でデータ中心のタスクを自動化するための不可欠なツールとなります。

## C#でのExcelセル範囲の使い方入門

まず、アプリケーションにIronXLライブラリをインストールする必要があります。

### IronXL NuGetパッケージをインストールする

次のコマンドを使用してNuGetパッケージマネージャー経由でIronXLをインストールできます。

```cs
Install-Package IronXL.Excel

上記のコマンドは、IronXLとそのすべての依存関係をインストールします。

C#でExcel範囲を管理する方法: 図1

名前空間を追加

Program.cs クラスの上部、または IronXL メソッドを使用したい場所に、次の名前空間を追加してください。

using IronXL;
using IronXL;
Imports IronXL
VB   C#

エクセル・ワークブックの読み込み

最初のステップは、Excelワークブックを読み込むことです。 次のコードは、アプリケーションでExcelワークブックを読み込みます。

static void Main(string[] args)
 {
     var workbook = WorkBook.Load("test_excel.xlsx");
     var sheet = workbook.GetWorkSheet("Sheet1");
 }
static void Main(string[] args)
 {
     var workbook = WorkBook.Load("test_excel.xlsx");
     var sheet = workbook.GetWorkSheet("Sheet1");
 }
Shared Sub Main(ByVal args() As String)
	 Dim workbook = WorkBook.Load("test_excel.xlsx")
	 Dim sheet = workbook.GetWorkSheet("Sheet1")
End Sub
VB   C#

ファイル行は、"test_excel.xlsx"という名前のファイルから既存のExcelワークブックを読み込みます。 2行目は、読み込まれたワークブックから「Sheet1」という名前のワークシートを取得します。

このチュートリアルを通して、次のExcelファイルを使用します。

C#でExcel範囲を管理する方法: 図2

範囲からデータを読み取る

では、指定されたセル範囲からデータを読み取りましょう。

var range = sheet["A2:G10"];
foreach (var item in range)
{
    Console.WriteLine(item);
}
var range = sheet["A2:G10"];
foreach (var item in range)
{
    Console.WriteLine(item);
}
Dim range = sheet("A2:G10")
For Each item In range
	Console.WriteLine(item)
Next item
VB   C#

最初の行は特定の範囲アドレスを選択します。(A2からG10まで)ワークシート内で、複数のExcelセルを同時に操作できます。 foreach (範囲内の項目)このループはこのセル範囲内の各セルを反復処理し、効率的なデータ処理を可能にします。

Console.WriteLineを使用して(アイテム); コードは各セルの値をコンソールに表示し、その範囲の内容を簡単に確認できるようにします。 このアプローチはデータ処理を簡素化し、コードの可読性を向上させます。

範囲でExcelの数式を使用

特定の範囲を選択し、いくつかのExcelの数式を実装しましょう。

var range = sheet["F2:F42"];
Console.WriteLine($"Minimum Age: {range.Min()}");
Console.WriteLine($"Maximum Age: {range.Max()}");
Console.WriteLine($"Average Age: {(int)range.Avg()}");
var range = sheet["F2:F42"];
Console.WriteLine($"Minimum Age: {range.Min()}");
Console.WriteLine($"Maximum Age: {range.Max()}");
Console.WriteLine($"Average Age: {(int)range.Avg()}");
Imports System

Dim range = sheet("F2:F42")
Console.WriteLine($"Minimum Age: {range.Min()}")
Console.WriteLine($"Maximum Age: {range.Max()}")
Console.WriteLine($"Average Age: {CInt(Math.Truncate(range.Avg()))}")
VB   C#

コード var range = sheet["F2:F42"]; F2からF42までのセル範囲を選択し、年齢データの統計分析を促進します。 range.Minを使用する()および range.Max()指定された範囲内で最小および最大の年齢値を効率的に計算し、人口統計に関する洞察を支援します。

さらに、range.Avg()平均年齢を計算し、データ解釈のための貴重な統計指標を提供します。 このアプローチはデータ分析業務を簡素化し、迅速に必要な統計情報にアクセスできるようにすることで、情報に基づいた意思決定を可能にします。

C#でExcel範囲を管理する方法:図3

単一セルからデータを読み取る

単一のセルからデータを読み取ります。

var read_from_single_cell = sheet["B2"];
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
var read_from_single_cell = sheet["B2"];
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
Dim read_from_single_cell = sheet("B2")
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}")
VB   C#

コード var read_from_single_cell = sheet["B2"]; ワークシートからセルB2に格納された値を取得します。 このアプローチを使用することで、Excelファイル内の特定のセルの値に簡単にアクセスできます。

Console.WriteLine を使用して(セル B2 の値は:{read_from_single_cell}")、コードは参照セルの取得値をコンソールに出力し、データの検証とデバッグを支援します。 これは、Excelファイルから個々のセルの値を取得して表示するプロセスを簡素化します。

C#でExcel範囲を管理する方法: 図4

列全体からデータを読み取る

インデックスを使用して列全体からデータを読み取りましょう。

// Get Last name Column from Index 2
 var columnValues = sheet.GetColumn(2); // 2 is column index
 foreach ( var columnValue in columnValues )
 {
     Console.WriteLine(columnValue);
 }
// Get Last name Column from Index 2
 var columnValues = sheet.GetColumn(2); // 2 is column index
 foreach ( var columnValue in columnValues )
 {
     Console.WriteLine(columnValue);
 }
' Get Last name Column from Index 2
 Dim columnValues = sheet.GetColumn(2) ' 2 is column index
 For Each columnValue In columnValues
	 Console.WriteLine(columnValue)
 Next columnValue
VB   C#

コード: var columnValues = sheet.GetColumn(2); インデックス2に位置する列からすべての値を取得します。(B列)ワークシート内。 これにより、Excelシートの特定の列内のすべての値に効率的にアクセスすることができます。

foreachループを使用してcolumnValuesを反復処理することで、列内の各値がConsole.WriteLineを使用してコンソールに出力されます。(カラム値);. このアプローチは、Excelファイルからの列形式データの処理と表示を容易にし、データ分析作業を効率化します。

C#でExcelレンジを管理する方法: 図5

また、インデックスではなく列名を使用して列からデータを読み取ることもできます。 以下の例を考えてみてください:

var columnValues = sheet.GetColumn("C");
var columnValues = sheet.GetColumn("C");
Dim columnValues = sheet.GetColumn("C")
VB   C#

このようにして、複数の列を指定することができます。

行全体からデータを読み取る

行番号を使用して、行全体からデータを読み取りましょう。

var rowValues = sheet.GetRow(1);// 1 is row index
 foreach (var rowValue in rowValues)
 {
     Console.Write(rowValue + "  ");
 }
var rowValues = sheet.GetRow(1);// 1 is row index
 foreach (var rowValue in rowValues)
 {
     Console.Write(rowValue + "  ");
 }
Dim rowValues = sheet.GetRow(1) ' 1 is row index
 For Each rowValue In rowValues
	 Console.Write(rowValue & "  ")
 Next rowValue
VB   C#

コード var rowValues = sheet.GetRow(1); インデックス1にある単一の行からすべての値を取得します。(行 2)ワークシート内で、行ごとのデータへの効率的なアクセスを可能にします。 foreachループを通じてrowValuesを反復処理し、行内の各値がConsole.Writeを使用してコンソールに出力されます。(rowValue + " ");.

このアプローチは、Excelファイルからの行データの抽出と表示を簡素化し、データ分析および報告の作業を支援します。 この方法では、範囲指定なしで複数のセルから値を読み取ることができます。

C#でExcel範囲を管理する方法: 図6

セルまたは範囲へのデータの書き込み

データをセルと範囲の両方に書き込むことができます。 まず、データを範囲に書き込むことにします。

var range = sheet["D2:D14"];
range.Value = "Prefer Not to Say"; // Change Gender Value
workbook.Save();
var range = sheet["D2:D14"];
range.Value = "Prefer Not to Say"; // Change Gender Value
workbook.Save();
Dim range = sheet("D2:D14")
range.Value = "Prefer Not to Say" ' Change Gender Value
workbook.Save()
VB   C#

コード var range = sheet[「D2:D14」]; セル D2 から D14 までの範囲を選択し、一括データ修正を可能にします。 range.Valueを「Prefer Not to Say」に設定することで、指定された範囲内の各セルの性別の値を効率的に更新し、繰り返し作業を最小限に抑えます。

次の workbook.Save(); コマンドは、データの一貫性と整合性を維持しながら、これらの変更の永続的なストレージを確保します。 このアプローチはバッチ更新を簡素化し、複数のセルで均一性を確保することで、データ管理の効率を向上させます。

では、特定のセルにデータを書き込みましょう。

sheet["B2"].Value = "John";
workbook.Save();
sheet["B2"].Value = "John";
workbook.Save();
sheet("B2").Value = "John"
workbook.Save()
VB   C#

コードシート["B2"].Value = "ジョン"; Excelワークシート内のセルB2に直接「John」の値を割り当て、特定のセル値を更新するための簡潔で明確な方法を提供します。 このアプローチは、個々のセルの内容を変更するプロセスを簡素化し、コードの可読性と効率性を向上させます。

C#でExcel範囲を管理する方法: 図7 - C# Excel範囲

結論

結論として、IronXLを使用してC#でExcelの範囲操作を習得することは、データ処理、レポート生成、動的スプレッドシート作成などのタスクを容易にし、アプリケーションの効率と自動化機能を大幅に向上させます。

IronXLの強力なExcelファイルの読み取り、書き込み、および操作機能により、開発者はデータ処理を合理化し、数式、書式設定、統計分析などの高度な機能を活用できます。 さらに、IronXLは無料試用、さまざまなプロジェクトの要件に対する柔軟性とスケーラビリティを確保します。

次へ >
C#でExcelファイルを操作する方法