首页 > 编程语言 >C# 冻结Excel窗口以锁定行列、或解除冻结

C# 冻结Excel窗口以锁定行列、或解除冻结

时间:2024-04-15 15:47:49浏览次数:19  
标签:冻结 sheet C# Excel FreezePanes workbook

在处理大型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);
 
        }
    }
}

 

标签:冻结,sheet,C#,Excel,FreezePanes,workbook
From: https://www.cnblogs.com/Yesi/p/18136075

相关文章

  • comcat白名单(十)leak
    0为什么used不好用PlatformDependent.usedDirectMemory始终返回-1跟踪下来,io.netty.util.internal.PlatformDependent0#hasDirectBufferNoCleanerConstructor始终返回false  关于mxbeanhttps://blog.51cto.com/u_16175492/7224266https://segmentfault.com/a/1190000044......
  • C# 异或校验两种方法
    12publicbyteGetXor(byte[]data)3{4byteCheckCode=0;5intlen=data.Length;6for(inti=0;i<len;i++)7{8CheckCode^=data[i];9......
  • Mysql安装和远程登录--Centos7
    在Centos7中使用的包管理工具是yum,当然使用包管理工具安装也是最方便的。本文操作内容需要在root用户下,否则有些步骤无法成功执行。系统环境信息展示安装MySQL提供的RPMwgethttps://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm检查是否下载成功......
  • layUI select下拉框动态赋值和设置选中值
    layUIselect下拉框动态赋值和设置选中值<script>layui.use(['form','layedit','laydate'],function(){var$=layui.jquery;$.ajax({url:'../api/SysType/GetArticleType?parentId=1',//json文......
  • Fluent Meshing:导入几何报错(Error in CAD Import)
    问题具体描述在使用Fluent自带的划分网格工具时,需要导入几何,在spaceclaim中做好几何处理以后,导入几何却报错:ErrorinCADImport解决方案采用下面的该方法逐一排除路径是否含有中文或者不合规字符等以管理员身份启动软件尝试几何文件和划网格软件版本是否一致Fluent是否安......
  • Mac python 多版本安装、删除、切换
    brewinstallpyenv版本验证pyenv-v 二查看所有的Python版本pyenvversions *指向的是当前所使用的版本,system是系统安装的python三查看所有可以安装的python版本pyenvinstall--list 截图部分四安装指定版本pyenvinstall3.8.9 五......
  • 云原生周刊:CNCF 2023 年度调查报告 | 2024.4.15
    开源项目推荐highlight该项目是一个开源全栈监控平台。其功能包括错误监控、会话重放、日志记录、分布式跟踪等。HelmComposeHelmCompose是一个helm插件,用于在单个配置文件中管理一个或多个图表的多个版本。HAMi异构AI计算虚拟化中间件(HAMi),是一个“一站式”图表,旨在......
  • arm-linux-gcc 交叉编译工具链使用方法
    参考文献:[野火]嵌入式Linux基础与应用开发实战指南安装交叉编译工具链有如下三种方式:直接在Ubuntu下使用APT包管理工具下载安装。自行下载第三方制作好的工具链。使用crosstool-ng根据需要自己制作。在开发中比较多的开发者对所有程序都直接用arm-linux-gnueabihf-gc......
  • npm ERR! errno CERT_HAS_EXPIRED(淘宝镜像证书过期)
    淘宝镜像证书过期npmERR!codeCERT_HAS_EXPIREDnpmERR!errnoCERT_HAS_EXPIREDnpmERR!requesttohttps://registry.npm.taobao.org/echartsfailed,reason:certificatehasexpired SSL证书已过期导致npm命令失败的问题。通常是因为证书过期或不再受信任而引......
  • Linux 64位内核(arm64)驱动兼容32位应用程序(armhf)的ioctl接口
    最近,公司来了一次硬件升级,开发平台从全志T3(armhf)升级到全志T527(arm64),平台迁移后,想直接使用原来动态库和应用程序从而减少开发量,用户态大部分接口都运行正常,唯独ioctl接口无法调用成功。如果要成功移植要做到以下几点:1.驱动要同时实现unlocked_ioctl和compat_ioctl。str......