C#でExcelにフリーズペインを追加する方法: xlsxファイル対応スプレッドシート作成ガイド
50以上の行または列を持つ大規模なxlsxファイルのスプレッドシートでは、ヘッダーを表示したままデータを表示することが困難になります。 C#のフリーズペイン機能は、特定の行や列を固定し、残りは自由にスクロールできるようにすることで、Excel操作 C# のエレガントなソリューションを提供します。
この機能は、財務報告書、従業員データベース、または列ヘッダーや行の識別子を常に表示する必要がある在庫リストで作業する場合に不可欠になります。 IronXLのExcelライブラリを使用すると、.NETアプリケーションのデータナビゲーションとユーザーエクスペリエンスを向上させるために、プログラムでフリーズペインを追加することができます。
クイックスタート: ヘッダー行と列を1行で固定
シンプルなCreateFreezePane(colSplit, rowSplit)メソッドを使用して、数秒で行や列を固定します。 複雑な設定は必要ありません。シートを読み込んで、このメソッドを呼び出すだけで、スクロールしている間、ヘッダーは上部に固定されます。
スプレッドシートに固定ペインを追加するには、次の手順に従います。
- フリーズペインに必要なC#ライブラリをインストールする
- フリーズペインを追加するには、 2つのパラメータを持つ`CreateFreezePane`使用します。
- 4つのパラメータを持つ`CreateFreezePane`を使用して、事前にスクロールされた位置でフリーズ ペインを追加します。
- スプレッドシートを希望のファイル形式でエクスポートします
Excelにフリーズ ウィンドウを追加するには?
フリーズペインは、行や列を所定の位置に固定し、スクロール中も表示されたままにすることができます。 この機能は、情報をすばやく比較しながら、ヘッダーの列や行を維持します。 この機能は、大規模なデータセットを扱う場合や、広範なスプレッドシートをナビゲートしながらコンテキストを維持する必要がある場合に特に役立ちます。
IronXLのフリーズペイン機能はExcelのネイティブ機能を模倣しており、Excelのインターフェースに慣れている開発者にとっては直感的なものとなっています。 Excel Interopソリューションとは異なり、IronXLはプログラムでフリーズ・ペインを実装するための、より効率的でサーバーフレンドリーなアプローチを提供します。
CreateFreezePaneは2つのパラメータでどのように動作しますか?
固定ペインを追加するには、CreateFreezePaneメソッドを使用し、固定ペインを開始する列と行を指定します。 指定された列と行はフリーズペインに含まれません。 例えば、workSheet.CreateFreezePane(1, 4)はA列および1から4行から始まる固定ペインを作成します。
0列目はA列目、1列目はB列目というように、ゼロベースのインデックスを理解することが重要です。 行インデックスも同じパターンです。 この方法は、データエントリーをスクロールしながらヘッダーを表示させたいシナリオに最適です。
次のコード例は、列Bと行4から始まるフリーズペインを作成する方法を示しています:
:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-add.cs
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
// Create freeze pane from column(A-B) and row(1-3)
workSheet.CreateFreezePane(2, 3);
workBook.SaveAs("createFreezePanes.xlsx");
Imports IronXL
Imports System.Linq
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.WorkSheets.First()
' Create freeze pane from column(A-B) and row(1-3)
workSheet.CreateFreezePane(2, 3)
workBook.SaveAs("createFreezePanes.xlsx")
フリーズ ペインの動作はどのようなものですか?
フリーズ ペインを削除するには?
スプレッドシートから既存のすべての固定ペインを削除するには、RemovePaneメソッドを使用します。 これは、ユーザーの好みやデータの変更に基づいて、ビューをリセットしたり、異なるフリーズ設定を適用したりする必要がある場合に便利です。
:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-remove.cs
// Remove all existing freeze or split pane
workSheet.RemovePane();
' Remove all existing freeze or split pane
workSheet.RemovePane()
高度なフリーズ ペイン オプションとは何ですか
CreateFreezePaneメソッドは、スクロール事前設定機能を備えた高度な固定ペインを作成するオプションを提供します。 この機能は、フリーズペインの機能を維持しながら、スプレッドシートの特定の領域に注意を向けたい場合に便利です。
高度なフリーズ ペインに 4 つのパラメータを使用するのはいつですか?
このメソッドでは、指定された開始列と行に基づいてフリーズペインを追加できます。 さらに、この方法を使用してワークシートにスクロールを適用できます。 これは、フォーマットされたExcelレポートで作業する際に、最初のビューを正確に制御する必要がある場合に特に有益です。
例えば、workSheet.CreateFreezePane(5, 2, 6, 7)を使用すると、A-E列および1-2行をカバーする固定ペインが作成されます。 これには1列と5行のスクロールが含まれます。 ワークシートを開くと、列A-E, G-...と行1-2, 8-...が表示されます。
:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-advance.cs
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
// Overwriting freeze or split pane to column(A-E) and row(1-5) as well as applying prescroll
// The column will show E,G,... and the row will show 5,8,...
workSheet.CreateFreezePane(5, 5, 6, 7);
workBook.SaveAs("createFreezePanes.xlsx");
Imports IronXL
Imports System.Linq
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.WorkSheets.First()
' Overwriting freeze or split pane to column(A-E) and row(1-5) as well as applying prescroll
' The column will show E,G,... and the row will show 5,8,...
workSheet.CreateFreezePane(5, 5, 6, 7)
workBook.SaveAs("createFreezePanes.xlsx")
高度なフリーズ ペインとはどのようなものですか?
フリーズ ペインの実用的な使用例
フリーズ・ペインは、さまざまなビジネス・シナリオにおいて非常に貴重です:
1.財務レポート: 年間データをスクロールしている間、月/四半期のヘッダーが見えるようにする。 2.従業員データベース:パフォーマンス指標を見ながら従業員の名前と ID をロックする 3.在庫管理:在庫レベルを確認しながら、製品コードと製品名を修正する。 4.セールスダッシュボード:地域の販売データを分析しながら、製品カテゴリの可視性を維持します。
Excelの数式と組み合わせると、フリーズペインはデータ分析の効率を大幅に高めます。
完全な例:フリーズペインを使ったデータレポートの作成
以下は、フリーズペインを使用した書式付きレポートの作成方法を示す包括的な例です:
using IronXL;
using IronXL.Styles;
// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Sales Report");
// Add headers
workSheet["A1"].Value = "Product ID";
workSheet["B1"].Value = "Product Name";
workSheet["C1"].Value = "Q1 Sales";
workSheet["D1"].Value = "Q2 Sales";
workSheet["E1"].Value = "Q3 Sales";
workSheet["F1"].Value = "Q4 Sales";
workSheet["G1"].Value = "Total";
// Style headers
var headerRange = workSheet["A1:G1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.BackgroundColor = "#4472C4";
headerRange.Style.Font.Color = "#FFFFFF";
// Add sample data
for (int i = 2; i <= 50; i++)
{
workSheet[$"A{i}"].Value = $"P{i-1:D3}";
workSheet[$"B{i}"].Value = $"Product {i-1}";
workSheet[$"C{i}"].Value = Random.Shared.Next(1000, 5000);
workSheet[$"D{i}"].Value = Random.Shared.Next(1000, 5000);
workSheet[$"E{i}"].Value = Random.Shared.Next(1000, 5000);
workSheet[$"F{i}"].Value = Random.Shared.Next(1000, 5000);
workSheet[$"G{i}"].Formula = $"=SUM(C{i}:F{i})";
}
// Apply freeze pane to keep headers visible
workSheet.CreateFreezePane(0, 1);
// Auto-size columns for better visibility
workSheet.AutoSizeColumn(0, 6);
// Save the workbook
workBook.SaveAs("SalesReportWithFreezePanes.xlsx");
using IronXL;
using IronXL.Styles;
// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Sales Report");
// Add headers
workSheet["A1"].Value = "Product ID";
workSheet["B1"].Value = "Product Name";
workSheet["C1"].Value = "Q1 Sales";
workSheet["D1"].Value = "Q2 Sales";
workSheet["E1"].Value = "Q3 Sales";
workSheet["F1"].Value = "Q4 Sales";
workSheet["G1"].Value = "Total";
// Style headers
var headerRange = workSheet["A1:G1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.BackgroundColor = "#4472C4";
headerRange.Style.Font.Color = "#FFFFFF";
// Add sample data
for (int i = 2; i <= 50; i++)
{
workSheet[$"A{i}"].Value = $"P{i-1:D3}";
workSheet[$"B{i}"].Value = $"Product {i-1}";
workSheet[$"C{i}"].Value = Random.Shared.Next(1000, 5000);
workSheet[$"D{i}"].Value = Random.Shared.Next(1000, 5000);
workSheet[$"E{i}"].Value = Random.Shared.Next(1000, 5000);
workSheet[$"F{i}"].Value = Random.Shared.Next(1000, 5000);
workSheet[$"G{i}"].Formula = $"=SUM(C{i}:F{i})";
}
// Apply freeze pane to keep headers visible
workSheet.CreateFreezePane(0, 1);
// Auto-size columns for better visibility
workSheet.AutoSizeColumn(0, 6);
// Save the workbook
workBook.SaveAs("SalesReportWithFreezePanes.xlsx");
Imports IronXL
Imports IronXL.Styles
' Create a new workbook
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Sales Report")
' Add headers
workSheet("A1").Value = "Product ID"
workSheet("B1").Value = "Product Name"
workSheet("C1").Value = "Q1 Sales"
workSheet("D1").Value = "Q2 Sales"
workSheet("E1").Value = "Q3 Sales"
workSheet("F1").Value = "Q4 Sales"
workSheet("G1").Value = "Total"
' Style headers
Dim headerRange = workSheet("A1:G1")
headerRange.Style.Font.Bold = True
headerRange.Style.BackgroundColor = "#4472C4"
headerRange.Style.Font.Color = "#FFFFFF"
' Add sample data
For i As Integer = 2 To 50
workSheet($"A{i}").Value = $"P{i - 1:D3}"
workSheet($"B{i}").Value = $"Product {i - 1}"
workSheet($"C{i}").Value = Random.Shared.Next(1000, 5000)
workSheet($"D{i}").Value = Random.Shared.Next(1000, 5000)
workSheet($"E{i}").Value = Random.Shared.Next(1000, 5000)
workSheet($"F{i}").Value = Random.Shared.Next(1000, 5000)
workSheet($"G{i}").Formula = $"=SUM(C{i}:F{i})"
Next
' Apply freeze pane to keep headers visible
workSheet.CreateFreezePane(0, 1)
' Auto-size columns for better visibility
workSheet.AutoSizeColumn(0, 6)
' Save the workbook
workBook.SaveAs("SalesReportWithFreezePanes.xlsx")
この例では、フリーズ・ペインがセル・スタイルと数式とどのように連動してプロフェッショナルなレポートを作成するかを示します。 ユーザーが50行の売上データをスクロールしても、ヘッダー行は表示されたままです。
パフォーマンスの考慮事項
大規模なスプレッドシートでフリーズペインを実装する場合:
- 最適なパフォーマンスを実現するために、データを入力した後にフリーズペインを適用します。
- 条件付き書式を使用して、凍結されたセクションの重要なデータを強調することを検討してください。
- スムーズなスクロールのパフォーマンスを保証するために、目標のデータ量でテストしてください。
膨大なデータセットを扱うアプリケーションでは、異なるフォーマットへのエクスポートや、フリーズ ペインと並行してページネーション戦略を実装することを検討してください。
[(1つの固定ペイン設定のみを適用できます。 追加のフリーズペインを作成する場合は、前の設定が上書きされます。 固定ペインはMicrosoft Excelバージョン97-2003(.xls)では機能しません。)]
よくある質問
フリーズペイン機能とは何ですか?
フリーズペイン機能は、特定の行や列を固定し、大きなスプレッドシートをスクロールしている間でも表示された状態を維持します。これは、財務報告書、従業員データベース、在庫リストのヘッダーの可視性を維持するために特に有用です。IronXLはC#アプリケーションでこの機能をプログラムで実装するための簡単なCreateFreezePaneメソッドを提供しています。
C#でヘッダー行をロックするフリーズペインをすばやく追加する方法を教えてください。
IronXLでは、CreateFreezePaneメソッドを使用することで、たった1行のコードでヘッダー行をロックすることができます。workSheet.CreateFreezePane(1,4)を呼び出すだけで、列と行がフリーズします。これにより、列 A と行 1 ~ 4 が固定され、スプレッドシートの残りの部分は自由にスクロールできるようになります。
CreateFreezePaneで2つのパラメータを使用する場合と4つのパラメータを使用する場合の違いは何ですか。
IronXLのCreateFreezePaneメソッドには2つのオプションがあります。2つのパラメータ(colSplit, rowSplit)を使用すると、指定された位置から基本的なフリーズペインを作成し、4つのパラメータを使用すると、表示領域をより高度に制御するために、事前にスクロールされた位置でフリーズペインを追加することができます。
フリーズ・ペインを設定する際、ゼロベース・インデックスはどのように機能しますか?
IronXLのCreateFreezePaneメソッドでは、インデックスはゼロベースです。列0は列Aを、列1は列Bを、といった具合です。たとえば、CreateFreezePane(1, 4)は、列Aから始まり、行1から4を含むフリーズペインを作成します。
フリーズペイン用のExcel Interopの代わりに、なぜこのライブラリを使用する必要があるのですか?
IronXLはExcel Interopソリューションと比較して、より効率的でサーバーフレンドリーなアプローチを提供します。Excelをサーバーにインストールする必要がなく、大規模なデータセットでも優れたパフォーマンスを発揮し、Excelのネイティブ機能を模倣しながら.NETアプリケーション向けに最適化された直感的なAPIを提供します。
フリーズペインを含むスプレッドシートを異なるファイル形式にエクスポートできますか。
はい、IronXLのCreateFreezePaneメソッドでフリーズ・ペインを追加した後、フリーズ・ペインの機能を維持したままスプレッドシートをさまざまなファイル形式にエクスポートできます。ライブラリは、サポートされているExcel形式に保存する際にこれらの設定を保持します。

