在處理大型Excel工作簿時,有時候我們需要在工作表中凍結窗格,這樣可以在滾動查看數據的同時保持某些行或列固定不動。凍結窗格可以幫助我們更容易地導航和理解複雜的數據集。相反,當你不需要凍結窗格時,你可能需要解凍它們以獲得完整的視野。 下麵將介紹如何使用免費.NET庫通過C#實現凍結Excel視窗以鎖 ...
在處理大型Excel工作簿時,有時候我們需要在工作表中凍結窗格,這樣可以在滾動查看數據的同時保持某些行或列固定不動。凍結窗格可以幫助我們更容易地導航和理解複雜的數據集。相反,當你不需要凍結窗格時,你可能需要解凍它們以獲得完整的視野。
下麵將介紹如何使用免費.NET庫通過C#實現凍結Excel視窗以鎖定行和列,以及如何解除凍結。
免費.NET Excel庫:
本文提供的實現方案需要用到 Free Spire.XLS for .NET 這個免費庫。該庫可以在 .NET 應用程式中快速實現對 Excel 文檔的各種操作。可以通過Nuget直接安裝,或者下載後手動引用Dll。
PM> Install-Package FreeSpire.XLS
C# 凍結Excel視窗(凍結首行、首列、多行多列)
Free Spire.XLS for .NET免費庫提供了 Worksheet.FreezePanes(int rowIndex, int columnIndex) 方法來凍結Excel行和列。其中的兩個參數:
- 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\測試.xlsx"); //獲取第一張工作表 Worksheet sheet = workbook.Worksheets[0]; //凍結首行 sheet.FreezePanes(2, 1); //凍結首列 //sheet.FreezePanes(1, 2); //凍結首行首列 //sheet.FreezePanes(2, 2); //凍結前三行 //sheet.FreezePanes(4, 1); //保存文件 workbook.SaveToFile("凍結Excel行列.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("凍結行列.xls"); //獲取第一張工作表 Worksheet sheet = workbook.Worksheets[0]; //解凍工作表中的行或列 sheet.RemovePanes(); //保存文件 workbook.SaveToFile("解凍Excel行列.xlsx", ExcelVersion.Version2016); } } }