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);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构 | 线性表的顺序表示(王道)

文章目录 顺序表定义综合应用顺序表定义 静态分配 #define MaxSize 50 typedef struct{ElemType data[MaxSize];int length; }SqList;动态分

ubuntu 20.04 设置国内镜像源(阿里源、清华源)

在网上搜了好多设置国内镜像源,都写的乱七八糟的,都是随便换,最后还是换得一堆问题。 镜像源也是跟版本一一对应的,不能随便一个国内源就还过去用,否则会出现各种各样的问题,我也是吃过亏之后才发现的。 国…

【Vue 自定义事件】

组件的自定义事件 一种组件间通讯的方式&#xff0c;适用于&#xff1a;子组件 —> 父组件 绑定自定义事件 第一种方式:在父组件中写单标签1.<Demo 事件名"方法">2.<Demo v-on:事件名"方法"/>第二种方式:使用ref绑定(配置在生命周期中)this…

通讯录项目(用c语言实现)

一.什么是通讯录 通讯录是一种用于存储联系人信息的工具或应用程序。它是一种电子化的地址簿&#xff0c;用于记录和管理个人、机构或组织的联系方式&#xff0c;如姓名、电话号码、电子邮件地址和邮寄地址等。通讯录的目的是方便用户在需要时查找和联系他人。 通讯录通常以列…

手眼标定问题排查_2_圆网格数据排查

经过昨天晚上的调试&#xff0c;发现了一个主要问题&#xff1a;使用圆网格标定板标定时&#xff0c;不能使用cornerSubPix()函数&#xff0c;否则寻找角点时&#xff0c;会导致图一的情况(裁剪为30万像素)。就找到能参考的程序&#xff0c;推进还是很快的。 图一 一些数据对比…

imu6xl点灯(C语言)

参考正点原子开发指南 根据原理图可以看出&#xff0c;我们需要设置低电平导通电路。 在原理图上找到LED0&#xff0c;对应IO为GPIO3 IO复用配置 IMX6UL每个引脚都可以复用 在用户手册第30章可以找到IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03这个寄存器&#xff0c;地址为0x020E0068&…

Linux网络名称空间和虚拟机有何区别

在Linux系统中&#xff0c;网络名称空间和虚拟机都是实现资源隔离和虚拟化的技术&#xff0c;但它们在设计理念、实现机制、资源消耗、使用场景等方面存在着显著的区别。本文旨在全方位、系统性地分析这两种技术的区别。&#x1f50d; 1. 设计理念与实现机制 1.1. 网络名称空…

未来汽车硬件安全的需求(2)

目录 4.汽车安全控制器 4.1 TPM2.0 4.2 安全控制器的硬件保护措施 5. EVITA HSM和安全控制器结合 6.小结 4.汽车安全控制器 汽车安全控制器是用于汽车工业安全关键应用的微控制器。 他们的保护水平远远高于EVITA HSM。今天的典型应用是移动通信&#xff0c;V2X、SOTA、…

bat脚本中使用gradle命令后,脚本不继续执行,直接退出

在window 的bat脚本执行的时候&#xff0c;执行完一个gradlew 目标后会自动退出&#xff0c;pause命令也无效。 原因&#xff1a;gradlew本身是一个bat命令&#xff0c;因此在exit退出的时候&#xff0c;整个脚本进程将退出&#xff0c;加入call命令调用即可&#xff1a; 如下…

python使用ffmpeg分割视频为Hls分片文件/使用OpenSSL加密m3u8和TS文件

FFmpeg和OpenSSL是一个开源免费的软件&#xff0c;在官网上就能下载&#xff0c; FFmpage网址&#xff08;建议选择文件名full结尾的文件&#xff09;&#xff1a;Builds - CODEX FFMPEG gyan.dev OpenSSL网址&#xff08;建议选择win64的MSI文件&#xff09;&#xff1a;Win3…

TS中interface和type的区别

前言 在面试中如果问TS的话&#xff0c;经常会问的一个问题就是interface和type有什么区别&#xff0c;这里做个记录 interface和type的区别 Interface 支持声明合并&#xff1a;如果你有两个相同名称的接口&#xff0c;TypeScript会合并它们 interface User {name: string…

maven依赖管理:依赖仓库管理

1、Maven的依赖如何存放管理&#xff1f; Maven中存在依赖组件&#xff08;常用的是jar包、war包、pom等&#xff0c;也可把Zip包等通过POM文件定义为依赖组件&#xff09;的地方称为仓库&#xff08;Repository&#xff09;。 在Maven中&#xff0c;仓库有三种类型&#xff1…

CSS中grid网格布局(秒懂如何实现网格布局)-菜鸟教程

目录 一、概念 二、使用 1.网格元素 2.display属性 3.网格轨道 4.fr 单位 5.网格单元 6.网格区域 7.网格列与行 8.CSS 网格属性 三、网格容器 display&#xff1a; grid-template-columns 和 grid-template-rows&#xff1a; grid-gap、grid-row-gap 和 grid-column-…

如何使用SQL注入工具?

前言 今天来讲讲SQL注入工具&#xff0c;sqlmap。如何使用它来一步步爆库。 sqlmap官方地址如下。 sqlmap: automatic SQL injection and database takeover tool 前期准备&#xff0c;需要先安装好docker、docker-compose。 一个运行的后端服务&#xff0c;用于写一个存在…

Composer安装与配置详解

目录 第一章:Composer简介 1.1 什么是Composer? 1.2 Composer与传统的依赖管理工具的区别 1.3 Composer的发展历程 1.4 本章小结 第二章:Composer安装 2.1 全局安装与项目内安装 2.1.1 全局安装 安装步骤 2.1.2 项目内安装 安装步骤 2.2 不同操作系统下的安装方…

计算机网络-TCP断开连接阶段错误应对机制

连接断开阶段 四次挥手机制&#xff1a;TCP连接的断开需要四次挥手&#xff0c;这是因为双方都需要独立地关闭数据传输。第二次和第三次挥手不能合并&#xff0c;因为在回复第二次挥手的时候&#xff0c;可能还有数据没有接收完成&#xff0c;所以需要先回复ACK报文&#xff0c…

【U8+】打开固定资产卡片,提示:运行时错误‘91’,未设置对象变量或with block变量。

【问题描述】 用友U8软件&#xff0c;固定资产模中打开某张卡片后&#xff0c; 提示&#xff1a;运行时错误‘91’&#xff0c;未设置对象变量或with block变量。 Ps&#xff1a;但不是所有卡片打开的时候都会提示&#xff0c;有的正常。 【解决方法】 跟踪数据库后&#xff…

SpringBoot入门(Hello World 项目)

SpringBoot关键结构 1.2.1 Core Container The Core Container consists of the Core, Beans, Context, and Expression Language modules. The Core and Beans modules provide the fundamental parts of the framework, including the IoC and Dependency Injection featur…

C语言易错知识点(3):字符数组的修改、sscanf、sprintf

字符数组是一个很细节的语法&#xff0c;涉及很多知识点&#xff0c;这篇文章我主要分享一下如何理解字符数组&#xff0c;以及对应的sscanf、sprintf有什么用 1.字符数组的初始化以及内容修改易错点 字符数组的初始化方式有两种&#xff0c;一种是直接用字符串进行初始化&am…

每日一题---OJ题: 相交链表

片头 嗨! 小伙伴们,大家好! 今天我们来一起学习这道OJ题---相交链表,准备好了吗? Ready Go! ! ! emmm,看这道题好像不怎么难,我们一起画图分析分析 上图中,A链表有5个结点,分别为 a1,a2,c1,c2,c3 ; B链表有6个结点,分别为 b1,b2,b3,c1,c2,c3 ; A链表和B链表在c1结点相交 …