首页 > 编程语言 >通过C#在Word中插入或删除分节符

通过C#在Word中插入或删除分节符

时间:2024-09-09 16:36:35浏览次数:9  
标签:Word C# doc 分节 文档 Doc SectionBreakType

在Word中,分节符是一种强大的工具,用于将文档分成不同的部分,每个部分可以有独立的页面设置,如页边距、纸张方向、页眉和页脚等。正确使用分节符可以极大地提升文档的组织性和专业性,特别是在长文档中,需要在不同部分应用不同的样式时。本文将介绍如何使用一个免费的.NET库通过C#实现插入或删除Word分节符。

 

免费.NET Word库

Free Spire.Doc for .NET 是一款免费的用于对 Word 文档进行操作的 .NET类库,适用于商业或个人用途(但有一定页数限制)。

安装:
我们可以直接在Visual Studio中通过NuGet搜索 “FreeSpire.Doc”,然后点击“安装”将其引用到程序中。或者通过该链接下载产品包,解压后再手动将dll文件添加引用至程序。

 

Word分节符类型

在Spire.Doc for .NET中,Paragraph.InsertSectionBreak(SectionBreakType breakType) 方法用于在段落中插入分节符。 其中SectionBreakType枚举中包含的几种分节符类型如下:

  • SectionBreakType.NoBreak:表示连续分节符,即新节的内容将紧接着当前页的内容开始,无需新的一页。适用于在同一页面内分隔不同部分的情况。
  • SectionBreakType.NewPage:表示下一页分节符,即新节将从下一页开始。
  • SectionBreakType.OddPage:表示奇数页分节符,即新节将从下一个奇数页上开始。
  • SectionBreakType.EvenPage:表示偶数页分节符,即新节将从下一个偶数页上开始。
  • SectionBreakType.NewColumn:适用于多栏的文档,新节将从下一栏开始。

API参考链接:https://www.e-iceblue.com/apireference/net/Spire.Doc/html/T_Spire_Doc_Documents_SectionBreakType.htm

 

C# 在Word中插入分节符

主要步骤:

  1. 通过 LoadFromFile() 方法加载 Word 文档。
  2. 使用指定的节中的指定段落。
  3. 使用 InsertSectionBreak() 方法在段落末尾添加分段符。
  4. 使用 SaveToFile() 方法保存结果文档。

示例代码:

using Spire.Doc;
using Spire.Doc.Documents;

namespace InsertSectionBreak
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载Word文档
            Document doc = new Document();
            doc.LoadFromFile("南极洲.docx");

            //获取第一节
            Section sec = doc.Sections[0];

            //获取该节中第一个段落
            Paragraph para = sec.Paragraphs[0];

            //插入连续分节符
            para.InsertSectionBreak(SectionBreakType.NoBreak);

            //保存文件
            doc.SaveToFile("连续分节符.docx", FileFormat.Docx);
        }
    }
}

 

插入连续分节符:

 

 

C# 删除Word中的分节符

本示例删除所有分节符的操作是通过将原始Word文档每一节中的内容复制到新建Word文档中来实现的。
主要步骤如下:

  1. 通过 LoadFromFile() 方法加载原始Word 文档。
  2. 创建一个新的Word文档,并往其中添加一节。
  3. 遍历原始文档中每一节,并获取其子对象内容。
  4. 复制获取到的子对象,然后使用 Section.Body.ChildObjects.Add() 方法将子对象内容添加到新文档中。
  5. 使用 SaveToFile() 方法保存新Word文档。

示例代码:

using Spire.Doc;

namespace DeleteSectionBreak
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载原始Word文档
            Document doc = new Document();
            doc.LoadFromFile("实验.docx");

            //创建新Word文档
            Document NewDoc = new Document();
            //添加一节
            Section sec = NewDoc.AddSection();

            //遍历原始文档中所有节
            for (int i = 0; i < doc.Sections.Count; i++)
            {
                //获取当前节
                Section section = doc.Sections[i];

                //遍历该节中所有子对象
                for (int j = 0; j < section.Body.ChildObjects.Count; j++)
                {
                    //获取子对象并复制到新文档中
                    DocumentObject obj = section.Body.ChildObjects[j];
                    sec.Body.ChildObjects.Add(obj.Clone());
                }
            }

            //保存新文档
            NewDoc.SaveToFile("删除分节符.docx", FileFormat.Docx);
        }
    }
}

 

效果图:

 

 

该免费.NET Word库也支持操作分页符、页边距、页眉页脚的等各项页面设置,更多示例可点击查看:
https://www.e-iceblue.cn/spiredoc/spire-doc-for-net-program-guide-content.html

标签:Word,C#,doc,分节,文档,Doc,SectionBreakType
From: https://www.cnblogs.com/Yesi/p/18404814

相关文章

  • 计算机网络之TCP/IP协议简介
    TCP/IP协议简介首先TCP/IP协议不只是表示TCP协议和IP协议两种协议,而是一个协议簇。协议簇是什么并不难理解,就是字面意思,一个由多个协议组合而成的集合体,其中最有代表性的就是TCP和IP这两个协议,除了这两个还有我们熟知的FTP、UDP等协议。当然我们下面主要介绍的还是这两位主角TCP......
  • FancyVideo环境搭建&推理
    ​引子很少关注360开源的代码,最近360AI团队开源了最新视频模型FancyVideo,据说RTX3090可跑。可以在消费级显卡(如GeForceRTX3090)上生成任意分辨率、任意宽高比、不同风格、不同运动幅度的视频,其衍生模型还能够完成视频扩展、视频回溯的功能,一种基于UNet架构的视频生成......
  • 国内加速拉取docker镜像的几种方法
    参考首页快捷命令,使用本站代理拉取镜像,并修改回原始镜像名,在删除代理镜像名。参考以下dockercli和docker-compose.yml修改镜像名后,继续一直使用本站代理服务未启动或更新新镜像。参考下文修改daemon.json配置文件,来更便捷地使用代理服务。 源站替换为平台do......
  • centos7.9安装mysql8.0.39
    1.添加MySQLYum仓库首先,需要下载并安装MySQLYum仓库RPM包:sudorpm-Uvhhttps://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm2.更新Yum缓存安装完Yum仓库后,更新Yum缓存:sudoyumcleanallsudoyummakecache3.安装MySQL 现在可以......
  • ornament和decoration的区别
    做名词“装饰品”用时,ornament和decoration都表示无实际用途的装饰物。它们之间只有细微的区别。ornament除了表示装饰物并无实际用途外,还暗示装饰物本身很华丽,很精美,很突出。比如昂贵的宝石、精致的手工艺品、以及带有昂贵宝石的精致手工艺品。decoration则仅仅表示装饰物并无......
  • torch中 nn.BatchNorm1d
    nn.BatchNorm1d是PyTorch中的一个用于一维数据(例如序列或时间序列)的批标准化(BatchNormalization)层。批标准化是一种常用的神经网络正则化技术,旨在加速训练过程并提高模型的收敛性和稳定性。它通过对每个输入小批次的特征进行归一化处理来规范化输入数据的分布。在一维数据上使......
  • torch.bmm释义
    torch.bmm是PyTorch中的一个函数,用于执行批量矩阵相乘(batchmatrixmultiplication)的操作。它用于计算两个具有相同批次大小的三维张量的矩阵乘法。在矩阵乘法中,两个矩阵的维度必须满足一定的条件。对于torch.bmm函数,它要求输入的两个张量都具有三个维度,形状分别为(batch_siz......
  • YOLOv10改进:CA注意力机制【注意力系列篇】(附详细的修改步骤,以及代码,目标检测效果优于
    YOLOv10改进:CA注意力机制【注意力系列篇】(附详细的修改步骤,以及代码)如果实验环境尚未搭建成功,可以参考这篇文章->【YOLOv10超详细环境搭建以及模型训练(GPU版本)】文章链接为:http://t.csdnimg.cn/YQ9qW--------------------------------------------------------------------......
  • React diff算法原理
    React使用一种称为“Reconciliation”的过程来确定虚拟DOM树中的哪些部分发生了变化,从而最小化实际DOM更新的工作量。这个过程的核心是实现了一个高效的diff算法,通常被称为“Fiber”机制的一部分。虽然它并不完全等同于经典的diff算法(如Myers’diffalgorithm......
  • 超30个好用的css动画库合集
    文章目录1.Animate.css2.Hover.css3.CSShake4.AniJS5.Lottie6.Animista-On-DemandCSSAnimationsLibrary7.HoverEffectIdeas8.Mo.js9.Hamburgers10.Loaders.css11.SpinKit12.CSSAnimation.io13.Tuesday14.Typed.js15.WOW.js16.Effeckt.css17.Mag......