C#實現(xiàn)凍結(jié)Excel窗口以鎖定行列或解除凍結(jié)
在處理大型Excel工作簿時,有時候我們需要在工作表中凍結(jié)窗格,這樣可以在滾動查看數(shù)據(jù)的同時保持某些行或列固定不動。凍結(jié)窗格可以幫助我們更容易地導航和理解復雜的數(shù)據(jù)集。相反,當你不需要凍結(jié)窗格時,你可能需要解凍它們以獲得完整的視野。
下面將介紹如何使用免費.NET庫通過C#實現(xiàn)凍結(jié)Excel窗口以鎖定行和列,以及如何解除凍結(jié)。
免費.NET Excel庫
本文提供的實現(xiàn)方案需要用到 Free Spire.XLS for .NET 這個免費庫。該庫可以在 .NET 應用程序中快速實現(xiàn)對 Excel 文檔的各種操作??梢酝ㄟ^Nuget直接安裝,或者下載后手動引用Dll。
PM> Install-Package FreeSpire.XLS
C# 凍結(jié)Excel窗口(凍結(jié)首行、首列、多行多列)
Free Spire.XLS for .NET免費庫提供了 Worksheet.FreezePanes(int rowIndex, int columnIndex) 方法來凍結(jié)Excel行和列。其中的兩個參數(shù):
- rowIndex: 表示行的索引 (索引從1開始),在該行之上的所有行將被凍結(jié)。
- columnIndex: 表示列的索引(索引從1開始),在該列左邊的所有列將被凍結(jié)。
因此,要凍結(jié)首行即為FreezePanes(2, 1),凍結(jié)首列為FreezePanes(1, 2),同時凍結(jié)首行首列為FreezePanes(2, 2),以此類推。
以下為凍結(jié)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]; //凍結(jié)首行 sheet.FreezePanes(2, 1); //凍結(jié)首列 //sheet.FreezePanes(1, 2); //凍結(jié)首行首列 //sheet.FreezePanes(2, 2); //凍結(jié)前三行 //sheet.FreezePanes(4, 1); //保存文件 workbook.SaveToFile("凍結(jié)Excel行列.xlsx", ExcelVersion.Version2016); } } }
C# 解除凍結(jié)Excel行和列
要解除凍結(jié),直接使用 Worksheet.RemovePanes() 方法即可,示例代碼如下:
using Spire.Xls; namespace UnfreezeExcelPane { class Program { static void Main(string[] args) { //加載Excel文件 Workbook workbook = new Workbook(); workbook.LoadFromFile("凍結(jié)行列.xls"); //獲取第一張工作表 Worksheet sheet = workbook.Worksheets[0]; //解凍工作表中的行或列 sheet.RemovePanes(); //保存文件 workbook.SaveToFile("解凍Excel行列.xlsx", ExcelVersion.Version2016); } } }
到此這篇關于C#實現(xiàn)凍結(jié)Excel窗口以鎖定行列或解除凍結(jié)的文章就介紹到這了,更多相關C#凍結(jié)Excel窗口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
.NET中保證線程安全的高級方法Interlocked類使用介紹
這篇文章主要介紹了.NET中保證線程安全的高級方法Interlocked類使用介紹,Interlocked類可以為為多個線程共享的變量提供原子操作,需要的朋友可以參考下2014-07-07