如何在 Excel 中插入分页符:3 种实用方法

当 Excel 工作表内容较多,尤其是包含长表格、多个数据区域或大量行时,系统可能会在不合适的位置自动分页。例如,标题可能被留在上一页底部,表格被从中间拆开,相关列也可能分散到不同页面。通过手动插入分页符,可以更灵活地控制每一页的起始位置,让工作表在打印或导出为 PDF 后更整齐、更易阅读。

本文将介绍 3 种在 Excel 中插入分页符的方法:

Excel 分页符是什么?

分页符用于标记一个打印页面的结束位置,以及下一个打印页面的开始位置。

分页符只影响工作表的打印布局,不会移动单元格、修改公式、将工作表拆分成多个工作表,也不会改变其中的数据。

Excel 中的分页符分为两种:

  • 自动分页符: Excel 会根据纸张大小、页边距、缩放比例、行高和列宽等设置自动生成分页符。
  • 手动分页符: 由用户主动插入,用于控制新的打印页面从哪里开始。

Excel 支持插入两种类型的手动分页符

  • 水平分页符: 从指定行的上方开始新的一页。
  • 垂直分页符: 从指定列的左侧开始新的一页。

开始前先打开分页预览视图

分页预览视图可以直观显示 Excel 当前如何将工作表划分为多个打印页面。插入分页符前并非必须进入该视图,但它能让页面边界更加清晰,也便于检查调整后的效果。

打开分页预览视图的方法如下:

  1. 打开 Excel 功能区中的 视图 选项卡。

  2. 点击 分页预览

    在 Excel 的“视图”选项卡中选择“分页预览”

Excel 会直接在工作表中显示各个打印页面的边界。

提示: 虚线表示 Excel 自动生成的分页符;实线表示手动分页符,其中也包括被手动移动过的自动分页符。

在 Excel 中手动添加或移动分页符

适用场景:只需要调整单个工作表的打印布局,或仅插入少量分页符。

插入水平分页符

  1. 选择分页位置下方的第一行。例如,要在第 9 行和第 10 行之间分页,请点击第 10 行的行号。
  2. 打开 页面布局 选项卡。
  3. 点击 分隔符
  4. 选择 插入分页符

结果: Excel 会在所选行的上方插入一条水平分页符。
Excel 在所选行上方插入水平分页符

插入垂直分页符

  1. 选择分页位置右侧的第一列。例如,要在 C 列和 D 列之间分页,请点击 D 列的列标。
  2. 打开 页面布局 选项卡。
  3. 点击 分隔符
  4. 选择 插入分页符

结果: Excel 会在所选列的左侧插入一条垂直分页符。
Excel 在所选列左侧插入垂直分页符

移动现有分页符

如果插入分页符的位置不对,无需删除并重新插入,可以直接调整其位置:

  1. 确保当前处于 分页预览 视图。
  2. 将分页线拖动到所需位置。如果无法拖动,请在 Excel 选项中确认已启用单元格拖放功能。手动移动自动分页符后,该分页符会转换为手动分页符。

注意: 对于列数较多的工作表,纸张方向、页边距和缩放设置都可能影响最终打印效果。如果列的分页结果与预期不符,请在打印前通过“打印预览”再次检查。

优点与缺点

优点 缺点
操作简单,适合少量调整 每个分页符都需要手动设置

使用 VBA 每隔 N 行自动插入分页符

适用场景:需要在 Excel 桌面版中按照固定行数间隔插入分页符,例如每隔 10 行分页。

Excel 没有提供一个可以直接“每隔 N 行插入分页符”的内置按钮。如果只需要添加少量分页符,手动操作通常已经足够。

但当工作表中包含数百行甚至数千行数据时,逐个添加分页符既耗时,也容易出错。此时可以使用一段简短的 VBA 宏,按照统一的行数间隔自动插入分页符。

⚠️ 注意: VBA 宏执行的操作通常无法通过 Ctrl + Z 撤销。运行代码前,请先备份工作簿,并且只运行来自可信来源的宏。

操作步骤

  1. Alt + F11 打开 VBA 编辑器。

  2. 点击 插入 > 模块,新建一个模块。

  3. 将以下 VBA 代码粘贴到模块中:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub InsertPageBreaksEveryNRows()
    Dim ws As Worksheet
    Dim intervalRows As Long
    Dim lastRow As Long
    Dim rowIndex As Long

    Set ws = ActiveSheet
    intervalRows = 10 ' 将此值修改为所需的行数间隔

    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    For rowIndex = intervalRows + 1 To lastRow Step intervalRows
    If Not HasHorizontalPageBreak(ws, rowIndex) Then
    ws.HPageBreaks.Add Before:=ws.Rows(rowIndex)
    End If
    Next rowIndex
    End Sub

    Private Function HasHorizontalPageBreak(ws As Worksheet, breakRow As Long) As Boolean
    Dim pb As HPageBreak

    HasHorizontalPageBreak = False

    For Each pb In ws.HPageBreaks
    If pb.Location.Row = breakRow Then
    HasHorizontalPageBreak = True
    Exit Function
    End If
    Next pb
    End Function

    在 Excel 中使用 VBA 每隔 N 行插入分页符

  4. intervalRows = 10 中的数值改为两个分页符之间需要间隔的工作表行数。

  5. F5 运行宏。

使用提示:

  • 该宏默认根据 A 列中的数据确定最后一行。如果主要数据位于其他列,请将代码中的 "A" 修改为相应的列字母。
  • 该宏不会删除已有分页符。如果希望先删除所有现有的手动分页符,请在 Set ws = ActiveSheet 后添加 ws.ResetAllPageBreaks
  • Excel 单个工作表最多支持 1,026 个水平和垂直分页符。如果在数据量很大的工作表中设置过小的行数间隔,可能会超出此限制。
  • 如果需要在工作簿中保留并重复使用宏,请将文件保存为 Excel 启用宏的工作簿(.xlsm)

优点与缺点

优点 缺点
自动完成重复的分页操作 需要具备基础 VBA 使用经验
可自定义分页的行数间隔 仅适用于 Excel 桌面版

需要删除已有分页符?可参考 如何删除 Excel 分页符

使用 Csharp 为多个 Excel 文件批量添加分页符

适用场景:需要批量处理多个 Excel 文件,或在 .NET 应用程序中自动完成分页设置的开发人员。

VBA 适合在 Excel 桌面应用程序内部执行自动化操作。如果需要在不打开 Microsoft Excel 的情况下批量处理多个工作簿,可以使用 Free Spire.XLS for .NET,通过 C# 插入水平或垂直分页符

下面介绍如何使用 C# 和 Free Spire.XLS for .NET,为指定文件夹中的多个 Excel 工作簿批量添加分页符。

操作步骤

  1. 安装所需的库。

    通过 NuGet 包管理器运行以下命令:

    1
    Install-Package FreeSpire.XLS
  2. 添加 C# 代码。

    以下示例会遍历指定文件夹中的多个 .xlsx 文件,为每个工作簿添加水平和垂直分页符,并将处理后的文件保存到单独的文件夹中。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    using System;
    using System.IO;
    using Spire.Xls;

    namespace ExcelPageBreak
    {
    internal class Program
    {
    private static void Main()
    {
    // 包含待处理 Excel 文件的文件夹
    string inputFolder = @"C:\ExcelFiles";

    // 将处理后的文件保存到单独的子文件夹中
    string outputFolder = Path.Combine(inputFolder, "Processed");
    Directory.CreateDirectory(outputFolder);

    // 查找当前文件夹中的所有 .xlsx 文件
    string[] files = Directory.GetFiles(
    inputFolder,
    "*.xlsx",
    SearchOption.TopDirectoryOnly
    );

    foreach (string filePath in files)
    {
    using (Workbook workbook = new Workbook())
    {
    // 加载 Excel 文件
    workbook.LoadFromFile(filePath);

    // 获取第一个工作表
    Worksheet sheet = workbook.Worksheets[0];

    // 在第 10 行上方插入水平分页符
    sheet.HPageBreaks.Add(sheet.Range["A10"]);

    // 在 D 列左侧插入垂直分页符
    sheet.VPageBreaks.Add(sheet.Range["D1"]);

    // 生成输出文件路径
    string outputPath = Path.Combine(
    outputFolder,
    Path.GetFileName(filePath)
    );

    // 保存处理后的工作簿
    workbook.SaveToFile(
    outputPath,
    FileFormat.Version2016
    );
    }
    }

    Console.WriteLine(
    $"已处理 {files.Length} 个工作簿。" +
    $"文件已保存到:{outputFolder}"
    );
    }
    }
    }

代码说明

代码通过 Directory.GetFiles() 查找指定输入文件夹中的所有 .xlsx 文件。对于每个工作簿,程序会:

  • 打开文件并获取第一个工作表。
  • 在第 10 行上方添加水平分页符。
  • 在 D 列左侧添加垂直分页符。
  • 将修改后的工作簿保存到独立的 Processed 文件夹中。

请将 C:\ExcelFiles 修改为实际存放工作簿的文件夹路径。你也可以根据需要替换 A10D1,指定新打印页面开始的行和列。

注意:

  • 该示例只处理指定文件夹中的 .xlsx 文件,不会扫描其子文件夹。
  • Free Spire.XLS 对 .xls 文件的限制为:每个工作簿最多 5 个工作表,每个工作表最多 200 行。在 Free Spire.XLS v7.8 及以上版本中,加载和保存 .xlsx 文件时不受这些限制,因此上面的示例只处理 .xlsx 文件。如果需要处理更大的 .xls 工作簿,请先将其转换为 .xlsx

优点与缺点

优点 缺点
可自动为多个 Excel 文件插入分页符 需要具备 .NET 和 C# 编程基础
无需安装 Microsoft Excel 当前示例只处理每个工作簿中的第一个工作表

三种分页符插入方法对比

方法 适用场景 是否支持跨平台 是否支持批量处理
手动插入 在单个工作表中添加少量分页符 有限,仅适用于桌面版
VBA 宏 按固定行数间隔重复插入分页符 有限,仅适用于桌面版 有限,取决于宏代码
C# + Free Spire.XLS 批量处理和自动化工作流 是,取决于所用 .NET 环境

为什么 Excel 分页符没有按预期生效?

如果分页符没有出现在预期位置,可以检查以下设置:

  • 选错了行或列。
    Excel 会在所选行的上方插入水平分页符,在所选列的左侧插入垂直分页符。请选择下一个打印页面应该开始的行或列。

  • 当前视图中不容易看到分页符。
    打开 视图 > 分页预览,可以直接在工作表中查看自动分页符和手动分页符。

  • “调整为”缩放设置覆盖了手动分页符。
    如果工作表使用了将内容调整为指定页数的缩放方式,Excel 可能会忽略手动分页符。请打开“页面设置”对话框,在“页面”选项卡中改用按百分比缩放。

  • 打印区域没有包含预期内容。
    打开 页面布局 > 打印区域,确认已包含正确的数据范围。也可以先清除现有打印区域,再重新设置。

  • 工作表受到保护。
    受保护的工作表可能不允许修改页面布局设置。请先取消工作表保护,插入或移动分页符后,再根据需要重新启用保护。

完成调整后,请打开 文件 > 打印,在打印或导出工作表前检查最终的页面布局。

常见问题解答

Q1:Excel 是否有插入分页符的快捷键?

A1:Excel 没有适用于所有版本和语言界面的通用快捷键。在使用英文功能区的 Windows 版 Excel 中,通常可以依次按 Alt → P → B → I 执行“插入分页符”命令;不同版本或显示语言下的按键顺序可能有所不同。

Q2:可以在 Excel 中每隔 N 行插入一个分页符吗?

A2:可以。Excel 没有按固定行数间隔插入分页符的内置功能,你可以逐个手动添加,也可以使用 VBA 自动完成。

Q3:如何删除 Excel 中的分页符?

A3:删除水平分页符时,请选择分页符下方的行;删除垂直分页符时,请选择分页符右侧的列,然后依次点击 页面布局 > 分隔符 > 删除分页符。若要删除工作表中的所有手动分页符,请选择 重设所有分页符。自动分页符无法直接删除。

Q4:分页符会影响工作表中的数据吗?

A4:不会。分页符只控制工作表在打印或导出为 PDF 时如何分页,不会改变单元格值、公式、格式或工作表结构。

总结

本文介绍了 3 种在 Excel 中插入分页符的方法,并说明了常见打印布局问题的排查方式。实际使用时,可以根据需要处理的文件数量和重复程度选择合适的方法,并在打印或导出为 PDF 前通过“打印预览”确认最终分页效果。