如何在C#中创建Excel文件

如何使用 C# 在 Excel 中添加冻结窗格

This article was translated from English: Does it need improvement?
Translated
View the article in English

在大型数据表表格中,要查看"Z"列之后50 多行或 50 列以上的数据,同时还要保持相应的标题可见,可能会很困难。 "冻结窗格"功能为此问题提供了一个巧妙的解决方案。

快速入门:将标题行和列锁定在一行中

使用简单的CreateFreezePane(colSplit, rowSplit)方法可以在几秒钟内冻结行或列。 无需任何设置——只需加载您的表格,调用此方法,滚动时标题将始终锁定在顶部。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronXL

    PM > Install-Package IronXL.Excel

  2. 复制并运行这段代码。

    workSheet.CreateFreezePane(1, 4);
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronXL,免费试用!
    arrow pointer


添加冻结窗格示例

冻结窗格是一个可以将行和列锁定在原地的选项,使其在滚动时保持可见。 这是一个非常有用的功能,可以在快速比较信息时保持标题列或行的位置不变。

创建冻结窗格(int column, int row)

要添加冻结窗格,请使用CreateFreezePane方法,并指定冻结窗格应从哪一列和哪一行开始。 指定的列和行未包含在冻结窗格中。 例如, workSheet.CreateFreezePane(1, 4)将从A 列第 1 行到第 4 行创建一个冻结窗格。

以下代码示例演示了如何从 B 列第 4 行开始创建冻结窗格:

:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-add.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Create freeze pane from column(A-B) and row(1-3)
workSheet.CreateFreezePane(2, 3);

workBook.SaveAs("createFreezePanes.xlsx");
Imports IronXL
Imports System.Linq

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.WorkSheets.First()

' Create freeze pane from column(A-B) and row(1-3)
workSheet.CreateFreezePane(2, 3)

workBook.SaveAs("createFreezePanes.xlsx")
$vbLabelText   $csharpLabel

示范

Freeze Pane in Action

删除冻结窗格

使用RemovePane方法可以快速从电子表格中删除所有现有的冻结窗格。

:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-remove.cs
// Remove all existing freeze or split pane
workSheet.RemovePane();
' Remove all existing freeze or split pane
workSheet.RemovePane()
$vbLabelText   $csharpLabel

高级冻结窗格示例

CreateFreezePane方法提供了一个高级选项,用于创建具有预滚动功能的冻结窗格。

CreateFreezePane(int column, int row, int subsequentColumn, int subsequentRow)

此方法允许您根据指定的起始列和行添加冻结窗格。 此外,它还允许您在工作表中应用滚动功能。

例如,通过使用 workSheet.CreateFreezePane(5, 2, 6, 7),可以创建一个跨度为 列 A-E行 1-2 的冻结窗格。 它包含一个 1 列 5 行的滚动条。 工作表首次打开时,将显示AE 列、G 列……以及第 1-2 行、第 8 行……

:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-advance.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Overwriting freeze or split pane to column(A-E) and row(1-5) as well as applying prescroll
// The column will show E,G,... and the row will show 5,8,...
workSheet.CreateFreezePane(5, 5, 6, 7);

workBook.SaveAs("createFreezePanes.xlsx");
Imports IronXL
Imports System.Linq

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.WorkSheets.First()

' Overwriting freeze or split pane to column(A-E) and row(1-5) as well as applying prescroll
' The column will show E,G,... and the row will show 5,8,...
workSheet.CreateFreezePane(5, 5, 6, 7)

workBook.SaveAs("createFreezePanes.xlsx")
$vbLabelText   $csharpLabel

示范

高级冷冻板演示

请注意只能应用 1 个冻结窗格设置。 任何后续创建的冻结窗格都会覆盖之前的冻结窗格。 冻结窗格功能在 Microsoft Excel 97-2003 版本(.xls 文件)中无法正常工作。

常见问题解答

如何使用C#向电子表格添加冻结窗格?

要在C#中向电子表格添加冻结窗格,可以使用IronXL的CreateFreezePane方法。指定起始列和行,例如workSheet.CreateFreezePane(1, 4),这将锁定第1到4行和第A列。

在Excel中使用冻结窗格的目的是什么?

冻结窗格用于将特定的行或列锁定在原位,使其在滚动电子表格的其他部分时仍可见。这在导航大型数据集时特别有用,以保持标题或关键数据的可见性。

如何以编程方式从电子表格中移除冻结窗格?

要以编程方式使用IronXL移除冻结窗格,可以使用RemovePane方法,这将清除电子表格中的所有现有冻结窗格。

冻结窗格可以应用于旧版Excel文件格式吗?

不,使用IronXL创建的冻结窗格不适用于版本97-2003(.xls)的Microsoft Excel文件格式。

在单个工作表中可以创建多个冻结窗格吗?

不,在一个工作表中只能一次应用一个冻结窗格。任何新的冻结窗格创建都会覆盖之前的。

如何创建具有预滚动功能的冻结窗格?

IronXL允许您使用具有四个参数的CreateFreezePane方法创建带有预滚动的冻结窗格。例如,workSheet.CreateFreezePane(5, 2, 6, 7)创建一个冻结窗格,从列A-E和行1-2开始,在打开电子表格时滚动从列G和行8开始。

添加冻结窗格后可以导出哪些文件格式?

使用IronXL添加冻结窗格后,您可以使用IronXL的导出功能将电子表格导出为各种文件格式,如XLSX、CSV等。

如何安装必要的库以在C#中使用冻结窗格?

您需要从NuGet安装IronXL库,以使用C#中的冻结窗格功能。访问NuGet网站并搜索IronXL.Excel以下载并安装它。

Chaknith Bin
软件工程师
Chaknith 在 IronXL 和 IronBarcode 工作。他在 C# 和 .NET 方面有着深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的见解有助于更好的产品、文档和整体体验。
准备开始了吗?
Nuget 下载 1,738,553 | Version: 2025.11 刚刚发布