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);
 
        }
    }
}
相关推荐
CodeCraft Studio4 小时前
3D文档控件Aspose.3D实用教程:使用 C# 构建 OBJ 到 U3D 转换器
开发语言·3d·c#·3d渲染·aspose·3d文件格式转换·3d sdk
唐青枫5 小时前
ValueTask 实战指南:解锁 .NET 异步编程的性能秘密
c#·.net
chenglin0165 小时前
C#_gRPC
开发语言·c#
专注VB编程开发20年7 小时前
OpenXml、NPOI、EPPlus、Spire.Office组件对EXCEL ole对象附件的支持
前端·.net·excel·spire.office·npoi·openxml·spire.excel
★YUI★9 小时前
学习制作记录(选项UI以及存档系统)8.24
学习·游戏·ui·unity·c#
liulilittle10 小时前
.NET反射与IL反编译核心技术
开发语言·数据库·c#·.net·反射·反编译·il
月巴月巴白勺合鸟月半10 小时前
Teams Bot机器人实时语音识别的多引擎的处理
机器人·c#
Kookoos11 小时前
System.IO.Pipelines 与“零拷贝”:在 .NET 打造高吞吐二进制 RPC
网络协议·rpc·.net·零拷贝·二进制协议·pipelines
hixiong12312 小时前
C# 编写一个XmlToDota的转换工具
开发语言·人工智能·yolo·c#
用户37215742613512 小时前
C# 高保真 Word 转 HTML 实战指南
c#