IRONXLの使用 C#でExcelレンジを管理する方法 Curtis Chau 更新日:7月 28, 2025 Download IronXL NuGet Download テキストの検索と置換 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article Excelファイルをプログラムで操作することは、C#アプリケーションの効率と自動化機能を大幅に向上させることができます。 レポートの作成、データの処理、または動的に複雑なスプレッドシートを作成する場合でも、Excelファイルの操作をマスターすることは重要です。 このチュートリアルでは、Excelの範囲を操作することに焦点を当てます。 We'll cover how to write, read, and manipulate ranges within an Excel file. C#でExcelの範囲を読む方法 Excelファイルを処理するためにIronXLライブラリをインストールします。 ワークブックをロードし、ワークシートを指定します。 読み取るセル範囲を選択します。 指定された範囲からデータを抽出して読み取ります。 IronXLとは? IronXLは、C#でのExcelファイル操作を簡素化する総合的なライブラリであり、スプレッドシートデータのシームレスな統合と操作のための多くの機能を提供します。 Its capabilities include reading, writing, and modifying Excel files without requiring Microsoft Excel installation, enabling cross-platform compatibility. IronXL facilitates the extraction of data from specific cells, ranges, or entire worksheets, along with advanced functionalities such as formatting, styling, and conditional formatting. 計算、数式、統計分析のサポートにより、IronXLは開発者がプログラムでExcel操作を効率的に処理できるようにし、C#アプリケーション内でのデータ中心のタスクの自動化に不可欠なツールとなります。 C#でのExcelセル範囲の使い方 まず最初に、アプリケーションにIronXLライブラリをインストールする必要があります。 IronXL NuGetパッケージをインストールする NuGetパッケージマネージャーを使用して、次のコマンドでIronXLをインストールできます。 Install-Package IronXL.Excel 上記のコマンドは、すべての依存関係とともにIronXLをインストールします。 名前空間を追加する Program.csクラスの上部またはIronXLメソッドを使用したい場所に次の名前空間を追加します。 using IronXL; using IronXL; Imports IronXL $vbLabelText $csharpLabel Excelワークブックをロードする 最初のステップは、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"); } 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"); } Shared Sub Main(ByVal 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 $vbLabelText $csharpLabel 最初の行は、"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 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 $vbLabelText $csharpLabel 最初の行は、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()}"); // 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()))}") $vbLabelText $csharpLabel コード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 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}") $vbLabelText $csharpLabel コード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) 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 $vbLabelText $csharpLabel コードvar columnValues = sheet.GetColumn(2);は、ワークシート内のインデックス2(C列)に位置する列からすべての値を取得します。 これにより、Excelシートの特定の列内のすべての値に効率的にアクセスできます。 columnValuesを反復処理するforeachループを通じて、列内の各値が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" var columnValues = sheet.GetColumn("C"); ' Retrieve values from the column with name "C" Dim columnValues = sheet.GetColumn("C") $vbLabelText $csharpLabel このようにして、いくつかの列を指定することができます。 行全体からデータを読み取る 行番号を使用して行全体からデータを読み取りましょう。 // 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) 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 $vbLabelText $csharpLabel コードvar rowValues = sheet.GetRow(1);は、ワークシート内のインデックス1(行2)に位置する単一の行からすべての値を取得し、効率的な行固有データへのアクセスを可能にします。 rowValuesを反復処理するforeachループを通じて、行内の各値が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 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() $vbLabelText $csharpLabel コード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(); ' Set the value for cell B2 sheet("B2").Value = "John" ' Save the workbook to persist the changes workbook.Save() $vbLabelText $csharpLabel コードsheet["B2"].Value = "John";は、Excelワークシート内のセルB2に"John"という値を直接割り当て、特定のセル値を更新するための簡潔で直接的な方法を提供します。 このアプローチは、個々のセルコンテンツの修正プロセスを簡素化し、コードの可読性と効率を向上させます。 結論 結論として、C#でIronXLを使ったExcel範囲操作をマスターすることは、アプリケーションの効率と自動化機能を大幅に向上させ、データ処理、レポート生成、動的スプレッドシートの作成などのタスクを容易にします。 IronXLの強力な機能により、Excelファイルの読み書きや操作を簡素化し、数式、書式設定、統計分析などの高度な機能を活用できます。 さらに、IronXLは無料トライアルも提供しており、さまざまなプロジェクト要件に柔軟性と拡張性を確保します。 よくある質問 C#でExcel範囲を操作するにはどのように始めれば良いですか? C#でExcel範囲を操作し始めるには、NuGetパッケージマネージャーを使用してIronXLライブラリをインストールします。コマンドは次のとおりです:Install-Package IronXL.Excel。その後、IronXLの包括的なAPIを使用してExcelワークブックのロードや範囲の操作を開始できます。 IronXLを使用してExcelワークブックをどのようにロードしますか? IronXLでExcelワークブックをロードするには、WorkBook.Loadメソッドを使用し、ファイル名を引数として渡します。例:var workbook = WorkBook.Load('test_excel.xlsx');。 IronXLで特定のセル範囲を読み取るためにどのようなメソッドがありますか? IronXLでは、sheet['A2:G10']のような構文を使用して範囲を定義し、それを反復処理することにより、各セルの値にアクセスすることで特定のセル範囲を読み取れます。 Excel範囲内のデータで統計分析を行うにはどうすればよいですか? IronXLを使用して、範囲を選択し、range.Min()、range.Max()、range.Avg()といったメソッドを適用して最小値、最大値、平均値を計算するなど、統計分析が可能です。 IronXLを使用して特定のセルにデータを書く手順は何ですか? IronXLで特定のセルにデータを書くには、例えばsheet['B2'].Value = 'John';のように直接値をセルに割り当て、その後ワークブックを保存して変更を維持します。 IronXLで範囲を指定せずに列全体のデータを読み取れますか? はい、IronXLは、sheet.GetColumn(index)やsheet.GetColumn('C')を使用して列全体を読み取ることを可能にし、インデックスまたは列名を使用してデータを取得することができます。 IronXLを使用した場合、行全体からデータを抽出する方法は? IronXLで行全体からデータを抽出するには、sheet.GetRow(index)を使用し、取得した値を反復処理してデータにアクセスします。 Excel操作におけるIronXLの高度な機能には何がありますか? IronXLは、フォーマット、スタイリング、条件付きフォーマット、計算および数式のサポートなどの高度な機能を提供し、C#アプリケーション内でExcelファイル操作の能力を強化します。 購入前にIronXLを試すことは可能ですか? はい、IronXLは無料の試用版を提供しており、これにより開発者はその機能を探索し、プロジェクトへの適合性を初期費用なしで判断することができます。 C#アプリケーションでの自動化をIronXLはどのように強化しますか? IronXLは、プログラムでExcelファイルをシームレスに操作可能にすることで、データ処理、レポート生成、動的なスプレッドシート作成のようなタスクにおいて、Microsoft Excelのインストールを必要とせずにC#アプリケーションの自動化を強化します。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 10月 27, 2025 C#でExcelピボットテーブルを作成する方法 この明確なステップバイステップガイドを使用して、C# InteropとIronXLを使用してExcelでピボットテーブルを作成する方法を学びましょう。 詳しく読む 公開日 10月 27, 2025 C#で列ヘッダー付きのDataGridViewをExcelにエクスポートする方法 IronXLライブラリを使用したステップバイステップのC#チュートリアルで、列ヘッダーを保持しながらDataGridViewデータをExcelにエクスポートする方法を学びましょう。 詳しく読む 公開日 10月 27, 2025 .NET Core CSVリーダーとしてのIronXLの使用方法 実用的な例とともにIronXLを.NET Core CSVリーダーとして効果的に使用する方法を学びましょう。 詳しく読む VB.NETでデータセットをExcelに変換する方法C#でExcelファイルを操作す...
公開日 10月 27, 2025 C#でExcelピボットテーブルを作成する方法 この明確なステップバイステップガイドを使用して、C# InteropとIronXLを使用してExcelでピボットテーブルを作成する方法を学びましょう。 詳しく読む
公開日 10月 27, 2025 C#で列ヘッダー付きのDataGridViewをExcelにエクスポートする方法 IronXLライブラリを使用したステップバイステップのC#チュートリアルで、列ヘッダーを保持しながらDataGridViewデータをExcelにエクスポートする方法を学びましょう。 詳しく読む
公開日 10月 27, 2025 .NET Core CSVリーダーとしてのIronXLの使用方法 実用的な例とともにIronXLを.NET Core CSVリーダーとして効果的に使用する方法を学びましょう。 詳しく読む