大きなExcelワークブックを操作する際、特定の行や列を固定したままデータをスクロールするために、ワークシート内のペインをフリーズする必要がある場合があります。ペインをフリーズすることで、複雑なデータセットをより簡単にナビゲートできるようになります。逆に、ペインの凍結を解除すると、より包括的なビューが得られます。
この記事では、無料の.NETライブラリを使用して、C#でExcelの行や列をフリーズまたはフリーズ解除する方法を紹介します。
無料の.NET Excelライブラリ
このタスクには、Excelドキュメントに対する様々な操作をサポートする無償ライブラリFree Spire.XLS for .NETが必要です。
Nuget経由で直接インストールするか、このリンクからダウンロードしてDllを手動で参照してください。
PM> Install-Package FreeSpire.XLS
C#でExcelの行と列をフリーズする
Free Spire.XLS for .NET ライブラリは、Excel の行と列を凍結する Worksheet.FreezePanes(int rowIndex, int columnIndex)
メソッドを提供します。2つのパラメータは次のとおりです:
-
rowIndex
: 行のインデックスを示します(インデックスは1から始まります)。その行より上のすべての行が凍結される。 -
columnIndex
: 列のインデックスを示す(インデックスは1から始まる)。その列の左側にあるすべての列が凍結される。
したがって、最初の行を凍結するには、FreezePanes(2, 1)
メソッドを使用します;
最初の列を凍結するには、FreezePanes(1, 2)
メソッドを使用します;
最初の行と最初の列の両方をフリーズするには、FreezePanes(2, 2)
メソッドを使用します。
以下はExcelの行や列をフリーズさせるC#のサンプルコードです:
using Spire.Xls;
namespace FreezeTopRow
{
class Program
{
static void Main(string[] args)
{
// Excel文書を読み込む
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\Test.xlsx");
//最初のワークシートを取得する
Worksheet sheet = workbook.Worksheets[0];
//最初の行を凍結する
sheet.FreezePanes(2, 1);
//最初の列を凍結
//sheet.FreezePanes(1, 2);
//最初の行と最初の列をフリーズさせる
//sheet.FreezePanes(2, 2);
//最初の3列を凍らせる
//sheet.FreezePanes(4, 1);
//ドキュメントを保存する
workbook.SaveToFile("FreezeExcelRowsColumns.xlsx", ExcelVersion.Version2016);
}
}
}
C#でExcelの行と列の凍結を解除する
フリーズを解除するには、Worksheet.RemovePanes()
メソッドを直接使用します。以下はそのサンプル・コードです:
using Spire.Xls;
namespace UnfreezeExcelPane
{
class Program
{
static void Main(string[] args)
{
// Excel文書を読み込む
Workbook workbook = new Workbook();
workbook.LoadFromFile("FreezeExcelRowsColumns.xlsx");
//最初のワークシートを取得する
Worksheet sheet = workbook.Worksheets[0];
//ワークシートの行または列の凍結を解除する
sheet.RemovePanes();
//ドキュメントを保存する
workbook.SaveToFile("UnfreezeRowsColumns.xlsx", ExcelVersion.Version2016);
}
}
}
APIリファレンス: