C# で Excel の範囲を選択する方法: xlsxファイル内のデータ操作ガイド
IronXLはC#開発者がOffice Interopに依存することなくxlsxファイルのExcelの範囲、行、列を選択、操作することを可能にします。 プログラムで範囲を選択するには workSheet["A1:C3"] のような単純な構文を使用し、行を選択するには GetRow() を使用し、列を選択するには GetColumn() のような単純な構文を使用します。
クイックスタート: IronXL で 1 行でセル範囲を選択する
IronXL ワークシートで GetRange を 1 回呼び出すだけで、"A1:C3"のような長方形の範囲を取得できます。ループも手間もかかりません。 複数のセルを一度に操作する最速の方法です。
最小限のワークフロー(5ステップ)
- 範囲を選択するためのC#ライブラリをダウンロードする
- WorkSheetオブジェクトの直後に**workSheet ["A2:B8"]**を使用してセルの範囲を選択します。
- `GetRow`メソッドを使用してワークシートの行を選択します
- `GetColumn`メソッドを使用して、指定されたワークシートの列を選択します。
- "+"演算子で範囲を簡単に結合できます
IronXLで異なる種類の範囲を選択するにはどうすればよいですか?
IronXL.Excelでは、ソート、計算、集計など、選択した範囲に対してさまざまな操作を行うことができます。 このライブラリは、Excelのネイティブ機能を反映しつつ、プログラムによる制御を提供する範囲選択のための直感的なメソッドを提供します。
範囲選択はExcelの多くの操作の基礎となります。 数学的計算を実行する場合でも、書式を適用する場合でも、データを抽出する場合でも、正しいセルを選択することが最初のステップです。IronXLは柔軟な範囲選択APIによってこのプロセスを簡単にします。
長方形のセル範囲を選択するにはどうすればよいですか?
セル A2 から B8 までの範囲を選択するには、次のコードを使用できます。
:path=/static-assets/excel/content-code-examples/how-to/select-range-range.cs
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// Get range from worksheet
var range = workSheet["A2:B8"];
Imports IronXL
Imports System.Linq
Private workBook As WorkBook = WorkBook.Load("sample.xls")
Private workSheet As WorkSheet = workBook.WorkSheets.First()
' Get range from worksheet
Private range = workSheet("A2:B8")
選択した範囲での作業
一度範囲を選択すると、IronXLは実行できる多くの操作を提供します:
using IronXL;
using System;
using System.Linq;
// Load an existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
// Select a range and perform operations
var range = workSheet["A1:C5"];
// Apply formatting to the entire range
range.Style.BackgroundColor = "#E8F5E9";
range.Style.Font.Bold = true;
// Iterate through cells in the range
foreach (var cell in range)
{
Console.WriteLine($"Cell {cell.AddressString}: {cell.Value}");
}
// Get sum of numeric values in the range
decimal sum = range.Sum();
Console.WriteLine($"Sum of range: {sum}");
using IronXL;
using System;
using System.Linq;
// Load an existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
// Select a range and perform operations
var range = workSheet["A1:C5"];
// Apply formatting to the entire range
range.Style.BackgroundColor = "#E8F5E9";
range.Style.Font.Bold = true;
// Iterate through cells in the range
foreach (var cell in range)
{
Console.WriteLine($"Cell {cell.AddressString}: {cell.Value}");
}
// Get sum of numeric values in the range
decimal sum = range.Sum();
Console.WriteLine($"Sum of range: {sum}");
Imports IronXL
Imports System
Imports System.Linq
' Load an existing spreadsheet
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
' Select a range and perform operations
Dim range = workSheet("A1:C5")
' Apply formatting to the entire range
range.Style.BackgroundColor = "#E8F5E9"
range.Style.Font.Bold = True
' Iterate through cells in the range
For Each cell In range
Console.WriteLine($"Cell {cell.AddressString}: {cell.Value}")
Next
' Get sum of numeric values in the range
Dim sum As Decimal = range.Sum()
Console.WriteLine($"Sum of range: {sum}")
スプレッドシートのより複雑な操作については、包括的な API ドキュメントを参照してください。
行全体を選択するにはどうすればよいですか?
4 行目を選択するには、ゼロベースのインデックスを使用した GetRow(3) メソッドを使用できます。 これは、他の行の対応するセルが空であっても、4行目のすべてのセルを含みます。
:path=/static-assets/excel/content-code-examples/how-to/select-range-row.cs
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// Get row from worksheet
var row = workSheet.GetRow(3);
Imports IronXL
Imports System.Linq
Private workBook As WorkBook = WorkBook.Load("sample.xls")
Private workSheet As WorkSheet = workBook.WorkSheets.First()
' Get row from worksheet
Private row = workSheet.GetRow(3)
行選択は、データを一行ずつ処理する必要がある場合に特に便利です。例えば、分析のためにスプレッドシートデータをロードするときなどです:
using IronXL;
using System;
WorkBook workBook = WorkBook.Load("data.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
// Process each row
for (int i = 0; i < workSheet.RowCount; i++)
{
var row = workSheet.GetRow(i);
// Skip empty rows
if (row.IsEmpty) continue;
// Process row data
foreach (var cell in row)
{
// Your processing logic here
Console.Write($"{cell.Value}\t");
}
Console.WriteLine();
}
using IronXL;
using System;
WorkBook workBook = WorkBook.Load("data.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
// Process each row
for (int i = 0; i < workSheet.RowCount; i++)
{
var row = workSheet.GetRow(i);
// Skip empty rows
if (row.IsEmpty) continue;
// Process row data
foreach (var cell in row)
{
// Your processing logic here
Console.Write($"{cell.Value}\t");
}
Console.WriteLine();
}
Imports IronXL
Imports System
Imports System.Linq
Dim workBook As WorkBook = WorkBook.Load("data.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
' Process each row
For i As Integer = 0 To workSheet.RowCount - 1
Dim row = workSheet.GetRow(i)
' Skip empty rows
If row.IsEmpty Then Continue For
' Process row data
For Each cell In row
' Your processing logic here
Console.Write($"{cell.Value}" & vbTab)
Next
Console.WriteLine()
Next
列全体を選択するにはどうすればよいですか?
列 C を選択するには、GetColumn(2) メソッドを使用するか、範囲アドレスを workSheet["C:C"] として指定します。 GetRow メソッドと同様に、指定された列に入力されているかどうかに関係なく、関連するすべてのセルが含まれます。
:path=/static-assets/excel/content-code-examples/how-to/select-range-column.cs
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// Get column from worksheet
var column = workSheet.GetColumn(2);
Imports IronXL
Imports System.Linq
Private workBook As WorkBook = WorkBook.Load("sample.xls")
Private workSheet As WorkSheet = workBook.WorkSheets.First()
' Get column from worksheet
Private column = workSheet.GetColumn(2)
.
列の選択は、財務報告書やデータベースのエクスポートのような列データを扱う際に非常に有用です。 計算列のある新しいスプレッドシートを作成するときに使用するかもしれません:
using IronXL;
using System;
// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Data");
// Add header row
workSheet["A1"].Value = "Quantity";
workSheet["B1"].Value = "Price";
workSheet["C1"].Value = "Total";
// Add sample data
for (int i = 2; i <= 10; i++)
{
workSheet[$"A{i}"].Value = i - 1;
workSheet[$"B{i}"].Value = 10.5 * (i - 1);
}
// Select the Total column and apply formula
var totalColumn = workSheet.GetColumn(2); // Column C
for (int i = 2; i <= 10; i++)
{
workSheet[$"C{i}"].Formula = $"=A{i}*B{i}";
}
workBook.SaveAs("calculations.xlsx");
using IronXL;
using System;
// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Data");
// Add header row
workSheet["A1"].Value = "Quantity";
workSheet["B1"].Value = "Price";
workSheet["C1"].Value = "Total";
// Add sample data
for (int i = 2; i <= 10; i++)
{
workSheet[$"A{i}"].Value = i - 1;
workSheet[$"B{i}"].Value = 10.5 * (i - 1);
}
// Select the Total column and apply formula
var totalColumn = workSheet.GetColumn(2); // Column C
for (int i = 2; i <= 10; i++)
{
workSheet[$"C{i}"].Formula = $"=A{i}*B{i}";
}
workBook.SaveAs("calculations.xlsx");
Imports IronXL
Imports System
' Create a new workbook
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Data")
' Add header row
workSheet("A1").Value = "Quantity"
workSheet("B1").Value = "Price"
workSheet("C1").Value = "Total"
' Add sample data
For i As Integer = 2 To 10
workSheet($"A{i}").Value = i - 1
workSheet($"B{i}").Value = 10.5 * (i - 1)
Next
' Select the Total column and apply formula
Dim totalColumn = workSheet.GetColumn(2) ' Column C
For i As Integer = 2 To 10
workSheet($"C{i}").Formula = $"=A{i}*B{i}"
Next
workBook.SaveAs("calculations.xlsx")
複数の範囲を結合するにはどうすればよいですか?
IronXL は、 '+' 演算子を使用して複数の IronXL.Ranges.Range オブジェクトを組み合わせる柔軟性を提供します。 演算子'+'を使用すると、簡単に範囲を連結またはマージして新しい範囲を作成することができます。 この機能は、連続しないセルに操作を適用する必要がある場合に特に便利です。 高度な結合テクニックについては、combining Excel ranges exampleを参照してください。
range が結合された範囲を含むように変更されます。:path=/static-assets/excel/content-code-examples/how-to/select-range-combine-range.cs
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// Get range from worksheet
var range = workSheet["A2:B2"];
// Combine two ranges
var combinedRange = range + workSheet["A5:B5"];
Imports IronXL
Imports System.Linq
Private workBook As WorkBook = WorkBook.Load("sample.xls")
Private workSheet As WorkSheet = workBook.WorkSheets.First()
' Get range from worksheet
Private range = workSheet("A2:B2")
' Combine two ranges
Private combinedRange = range + workSheet("A5:B5")
高度な範囲選択テクニック
IronXLはExcelの機能を反映した高度な範囲選択シナリオをサポートしています:
using IronXL;
using System;
using System.Linq;
WorkBook workBook = WorkBook.Load("data.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
// Select multiple non-adjacent ranges
var headerRange = workSheet["A1:E1"];
var dataRange1 = workSheet["A5:E10"];
var dataRange2 = workSheet["A15:E20"];
// Combine ranges for batch operations
var combinedData = dataRange1 + dataRange2;
// Apply consistent formatting across combined ranges
combinedData.Style.BottomBorder.Type = IronXL.Styles.BorderType.Thin;
combinedData.Style.Font.Height = 11;
// Copy formatting from one range to another
var sourceFormat = headerRange.Style;
dataRange1.First().Style = sourceFormat;
using IronXL;
using System;
using System.Linq;
WorkBook workBook = WorkBook.Load("data.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
// Select multiple non-adjacent ranges
var headerRange = workSheet["A1:E1"];
var dataRange1 = workSheet["A5:E10"];
var dataRange2 = workSheet["A15:E20"];
// Combine ranges for batch operations
var combinedData = dataRange1 + dataRange2;
// Apply consistent formatting across combined ranges
combinedData.Style.BottomBorder.Type = IronXL.Styles.BorderType.Thin;
combinedData.Style.Font.Height = 11;
// Copy formatting from one range to another
var sourceFormat = headerRange.Style;
dataRange1.First().Style = sourceFormat;
Imports IronXL
Imports System
Imports System.Linq
Dim workBook As WorkBook = WorkBook.Load("data.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
' Select multiple non-adjacent ranges
Dim headerRange = workSheet("A1:E1")
Dim dataRange1 = workSheet("A5:E10")
Dim dataRange2 = workSheet("A15:E20")
' Combine ranges for batch operations
Dim combinedData = dataRange1 + dataRange2
' Apply consistent formatting across combined ranges
combinedData.Style.BottomBorder.Type = IronXL.Styles.BorderType.Thin
combinedData.Style.Font.Height = 11
' Copy formatting from one range to another
Dim sourceFormat = headerRange.Style
dataRange1.First().Style = sourceFormat
数式を扱うとき、範囲選択はさらに強力になります:
// Select a range for formula application
var calculationRange = workSheet["D2:D20"];
// Apply formulas that reference other ranges
for (int i = 2; i <= 20; i++)
{
workSheet[$"D{i}"].Formula = $"=SUM(A{i}:C{i})";
}
// Use range in aggregate functions
var sumRange = workSheet["B2:B20"];
decimal totalSum = sumRange.Sum();
decimal average = sumRange.Avg();
decimal max = sumRange.Max();
// Select a range for formula application
var calculationRange = workSheet["D2:D20"];
// Apply formulas that reference other ranges
for (int i = 2; i <= 20; i++)
{
workSheet[$"D{i}"].Formula = $"=SUM(A{i}:C{i})";
}
// Use range in aggregate functions
var sumRange = workSheet["B2:B20"];
decimal totalSum = sumRange.Sum();
decimal average = sumRange.Avg();
decimal max = sumRange.Max();
Imports System
' Select a range for formula application
Dim calculationRange = workSheet("D2:D20")
' Apply formulas that reference other ranges
For i As Integer = 2 To 20
workSheet($"D{i}").Formula = $"=SUM(A{i}:C{i})"
Next
' Use range in aggregate functions
Dim sumRange = workSheet("B2:B20")
Dim totalSum As Decimal = sumRange.Sum()
Dim average As Decimal = sumRange.Avg()
Dim max As Decimal = sumRange.Max()
レンジ選択のベストプラクティス
IronXLで範囲を扱う際には、パフォーマンスと信頼性のヒントを考慮してください:
1.必要なセルが正確に分かっている場合は、特定の範囲アドレスを使用してください。 これは、行や列全体を選択するよりも効率的です。
2.実行時エラーを避けるために、選択する前に範囲の境界を検証してください:
// Check if range exists before selection
int lastRow = workSheet.RowCount;
int lastColumn = workSheet.ColumnCount;
if (lastRow >= 10 && lastColumn >= 3)
{
var safeRange = workSheet["A1:C10"];
// Process range
}
// Check if range exists before selection
int lastRow = workSheet.RowCount;
int lastColumn = workSheet.ColumnCount;
if (lastRow >= 10 && lastColumn >= 3)
{
var safeRange = workSheet["A1:C10"];
// Process range
}
' Check if range exists before selection
Dim lastRow As Integer = workSheet.RowCount
Dim lastColumn As Integer = workSheet.ColumnCount
If lastRow >= 10 AndAlso lastColumn >= 3 Then
Dim safeRange = workSheet("A1:C10")
' Process range
End If
3.範囲反復を活用して、効率的に処理してください:
var dataRange = workSheet["A1:E100"];
// Efficient: Process in batches
foreach (var cell in dataRange)
{
if (cell.IsNumeric)
{
cell.Value = (decimal)cell.Value * 1.1; // 10% increase
}
}
var dataRange = workSheet["A1:E100"];
// Efficient: Process in batches
foreach (var cell in dataRange)
{
if (cell.IsNumeric)
{
cell.Value = (decimal)cell.Value * 1.1; // 10% increase
}
}
Dim dataRange = workSheet("A1:E100")
' Efficient: Process in batches
For Each cell In dataRange
If cell.IsNumeric Then
cell.Value = CType(cell.Value, Decimal) * 1.1D ' 10% increase
End If
Next
セル範囲のコピーのような複雑なシナリオのために、IronXLは書式と数式を維持する特別なメソッドを提供します。
IronXLを使い始める
あなたのプロジェクトでIronXL.Excelのさまざまな選択機能を使い始めるには、包括的なスタートガイドから始めてください。 NuGetパッケージマネージャ経由でIronXLをインストールしてください:
Install-Package IronXL.Excel
または.NET CLIを使用して:
dotnet add package IronXL.Excel
dotnet add package IronXL.Excel
範囲選択は、C#でのExcel操作の基礎を形成します。 IronXLの直感的なAPIを使えば、Office Interopのような複雑な操作なしに、Excelデータの選択、操作、変換を効率的に行うことができます。レポートの作成、データ分析、表計算作業の自動化など、範囲選択をマスターすることで生産性が大幅に向上します。
よくある質問
C# を使用して Excel でセル範囲を選択するにはどうすればよいですか?
IronXLでは、workSheet["A1:C3"]やworkSheet.GetRange("A1:C3")のような簡単な構文でセル範囲を選択することができます。これにより、Office Interopに依存することなく矩形の範囲を選択することができます。
プログラムで行や列全体を選択できますか?
はい、IronXLはExcelワークシートの行と列全体を選択するGetRow()メソッドとGetColumn()メソッドを提供します。これらのメソッドは、Excelをインストールすることなく、行や列の選択をプログラムで制御することができます。
C#で複数のセル範囲を結合するには?
IronXLでは'+'演算子を使って複数の範囲を結合することができます。この機能により、連続しないセル選択をプログラムで簡単に扱うことができます。
選択した範囲に対してどのような操作ができますか?
IronXLで範囲を選択すると、並べ替え、数学的計算、書式の適用、セルの反復処理、合計の計算などのデータ集計を含むさまざまな操作を実行できます。
選択した範囲に書式を適用する方法を教えてください。
IronXLで範囲を選択した後、Styleプロパティを使って書式を適用することができます。例えば、range.Style.BackgroundColorで背景色を設定し、range.Style.Font.Bold = trueでテキストを太字にすることができます。
選択した範囲のセルを繰り返し処理できますか?
はい、IronXLではforeachループを使って選択した範囲のセルを繰り返し処理することができます。各セルから値とアドレスにアクセスできるので、セルごとにデータを処理するのが簡単です。

