Word处理控件Aspose.Words功能演示:使用 C# 拆分 MS Word 文档

news2024/11/26 18:26:59

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

Aspose.words 最新下载(qun:761297826)icon-default.png?t=N176https://www.evget.com/product/4116/download

MS Word 文档被广泛用于保存和共享信息。在某些情况下,您可能需要从可能位于不同部分或页面的 Word 文档中拆分数据。此外,您可能需要将单个文档的页面拆分为多个文档。根据这样的场景,本文旨在向您展示如何使用 C# 以编程方式拆分 MS Word 文档。

一、用于拆分 MS Word 文档的 C# API

Aspose.Words for .NET是一个功能强大的文字处理 API,可让您使用 C# 或 VB.NET 创建和操作 MS Word 文档。除此之外,它还允许您按部分、页面或页面范围拆分 MS Word 文档。您可以下载API 或使用NuGet在您的应用程序中安装它。

PM> Install-Package Aspose.Words

二、使用 C# 按部分拆分 Word 文档

节是指文档中可以应用不同格式的部分。一个节可以由单个页面、一系列页面或整个文档组成。分节符用于将文档分成多个部分。以下是使用 Aspose.Words for .NET 根据其部分拆分 Word 文档的步骤。

  • 使用Document类加载 Word 文档。
  • 使用Document.Sections属性遍历页面部分。
  • 将节克隆到新的节对象中。
  • 创建一个新的文档对象。
  • 使用Document.Sections.Add(Section)方法将节添加到新文档中。
  • 使用Document.Save(String)方法保存文档。

以下代码示例显示了如何使用 C# 将 MS Word 文档按部分拆分。

// Open a Word document
Document doc = new Document("document.docx");

for (int i = 0; i < doc.Sections.Count; i++)
{
// Split a document into smaller parts, in this instance split by section
Section section = doc.Sections[i].Clone();

// Create a new document
Document newDoc = new Document();
newDoc.Sections.Clear();

Section newSection = (Section)newDoc.ImportNode(section, true);
newDoc.Sections.Add(newSection);

// Save each section as a separate document
newDoc.Save($"splitted_{i}.docx");
}

三、使用 C# 逐页拆分 Word 文档

可能会出现这样的情况,即 Word 文档在每一页上都包含类似类型的信息,例如发票或收据。在这种情况下,您可以拆分文档的页面,以便将每张发票保存为单独的文档。要逐页拆分文档,您可以使用基于 Aspose.Words for .NET的辅助类DocumentPageSplitter 。您可以简单地在您的项目中复制类,并按照以下步骤逐页拆分 Word 文档。

  • 使用Document类加载 Word 文档。
  • 创建 DocumentPageSplitter 类的对象并使用Document对象对其进行初始化。
  • 遍历文档的页面。
  • 使用DocumentPageSplitter.GetDocumentOfPage(int PageIndex)方法将每个页面提取到一个新的Document对象中。
  • 使用Document.Save(String)方法保存每个文档。

以下代码示例显示了如何使用 C# 将 Word 文档按页拆分。

// Open a Word document
Document doc = new Document("Document.docx");

// Create and initialize the document page splitter
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);

// Save each page as a separate document
for (int page = 1; page <= doc.PageCount; page++)
{
Document pageDoc = splitter.GetDocumentOfPage(page);
pageDoc.Save($"spliteed_{page}.docx");
}

四、使用 C# 按页面范围拆分 Word 文档

您还可以使用DocumentPageSplitter类指定页面范围以将其从原始文档中拆分出来。例如,如果您需要将页面从 2 拆分为 4,只需在DocumentPageSplitter.GetDocumentOfPageRange(int StartIndex, int EndIndex)方法中指定起始页和结束页的索引即可。

以下代码示例显示了如何使用 C# 从 Word 文档中拆分页面范围。

// Open a Word document
Document doc = new Document("document.docx");

// Create and initialize document page splitter
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);

// Get the page range
Document pageDoc = splitter.GetDocumentOfPageRange(3, 6);
pageDoc.Save("splitted.docx")

以上便是使用 C# 拆分 MS Word 文档详细步骤 ,要是您还有其他关于产品方面的问题,欢迎咨询我们,或者加入我们官方技术交流群。

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

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

相关文章

Python——列表排序和赋值

&#xff08;1&#xff09;列表排序&#xff1a; 列表排序方法 ls.sort() 对列表ls 中的数据在原地进行排序 ls [13, 5, 73, 4, 9] ls.sort()ls.sort(reverseFalse) 默认升序&#xff0c;reverseTrue&#xff0c;降序 ls [13, 5, 73, 4, 9] ls.sort(reverseTrue)key指定排序时…

小红书「高效达人筛选攻略」

三八女神节降临&#xff0c;诸多品牌纷纷开启铺垫预热&#xff0c;在各大平台借势宣传。而聚集庞大年轻女性消费群体的小红书&#xff0c;对“她营销”的重要性不言而喻。节点序幕拉开&#xff0c;面对海量达人信息&#xff0c;如何提前积草屯粮、高效备战&#xff1f; 本期千瓜…

【数据结构】链表:看我如何顺藤摸瓜

&#x1f451;专栏内容&#xff1a;数据结构⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;日拱一卒&#xff0c;功不唐捐 文章目录一、前言二、链表1、定义2、单链表Ⅰ、新建一个节点Ⅱ、内存泄漏Ⅲ、插入一个节点Ⅳ、销毁所有节点Ⅴ、反转一个链表3、…

云his系统源码 SaaS应用 基于Angular+Nginx+Java+Spring开发

云his系统源码 SaaS应用 功能易扩 统一对外接口管理 一、系统概述&#xff1a; 本套云HIS系统采用主流成熟技术开发&#xff0c;软件结构简洁、代码规范易阅读&#xff0c;SaaS应用&#xff0c;全浏览器访问前后端分离&#xff0c;多服务协同&#xff0c;服务可拆分&#xff…

【Linux要笑着学】进程创建 | 进程终止 | slab分派器

爆笑教程《看表情包学Linux》&#x1f448; 猛戳订阅&#xff01;​​​​​​​​​​​​&#x1f4ad; 写在前面&#xff1a;本章我们主要讲解进程的创建与终止。首先讲解进程创建&#xff0c;fork 函数是我们早在讲解 "进程的概念" 章节就提到过的一个函数&#…

总结篇 字符串设备(一)

简介 1、字符设备是Linux驱动中最基本的一类设备驱动&#xff0c;字符设备就是一个个字节&#xff0c;按照字节流进行读写操作的设备。&#xff08;例&#xff1a;按键&#xff0c;电池等&#xff0c;IIC,SPI&#xff0c;LCD&#xff09;。这些设备的驱动就叫字符设备驱动。 在…

八股文(二)

一、 实现深拷贝和浅拷贝 1.深拷贝 function checkType(any) {return Object.prototype.toString.call(any).slice(8, -1) }//判断拷贝的要进行深拷贝的是数组还是对象&#xff0c;是数组的话进行数组拷贝&#xff0c;对象的话进行对象拷贝 //如果获得的数据是可遍历的&#…

小白推荐!必定成功的python的安装流程?

目录 1.安装教程 2.使用cmd测试是否安装成功&#xff0c;快捷键WinR 3.如果测试失败&#xff0c;如何卸载&#xff1f; 4.如何在pycharm中指定下载的python解释器路径&#xff1f; 5.第一条python语句 1.安装教程 1.前往python的官网&#xff08;弄个梯子可能会快一点&#xf…

spring boot + rabbitMq整合之死信队列(DL)

rabbit mq 死信队列 什么是死信队列? DL-Dead Letter 死信队列 死信&#xff0c;在官网中对应的单词为“Dead Letter”&#xff0c;可以看出翻译确实非常的简单粗暴。那么死信是个什么东西呢&#xff1f; “死信”是RabbitMQ中的一种消息机制&#xff0c;当你在消费消息时&…

Qt 解决程序全屏运行弹窗引发任务栏显示

文章目录摘要在VM虚拟机器中测试setWindowFlags()关键字&#xff1a; Qt、 Qt::WindowStayOnTopHint、 setWindowFlags、 Qt::Window、 Qt::Tool摘要 今天眼看项目就要交付了&#xff0c;结果在测试程序的时候&#xff0c;发现在程序全品情况下&#xff0c;点击输入框&#x…

【Android Studio】【学习笔记】【2023春】

文章目录零、常用一、界面布局疑问&报错零、常用 一、界面布局 Android——六大基本布局总结/CSDN小马 同学 【Android】线性布局&#xff08;LinearLayout&#xff09;最全解析/CSDNTeacher.Hu 一个不错的计算器界面&#x1f447; Android Studio App LinearLayout多层…

数据资产管理建设思考(二)

关于数据资产管理&#xff0c;近两年是数据治理行业中一个热点话题&#xff0c;当然有我们前面提到的国家的政策支持及方向指引的原因。另一方面我们做数据治理的同行们从学习吸收国外优秀的数据治理理论&#xff0c;进一步在实践中思考如何应用理论&#xff0c;并结合我们国家…

docker(二)镜像详解、镜像构建、镜像优化

文章目录前言一、docker镜像详解1.镜像分层结构2.镜像的表示二、镜像构建1.commit提交2.DockerfileDockerfile 命令详解三、镜像优化1.缩减镜像层2.多阶段构建3.使用最精简的基础镜像前言 一、docker镜像详解 1.镜像分层结构 共享宿主机的kernelbase镜像提供的是最小的Linux发…

【LeetCode】1487. 保证文件名唯一

1487. 保证文件名唯一 题目描述 给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹&#xff1a;在第 i 分钟&#xff0c;新建名为 names[i] 的文件夹。 由于两个文件 不能 共享相同的文件名&#xff0c;因此如果新建文件夹使用的文件名已经被占用&a…

pytorch-模型训练中过拟合和欠拟合问题。从模型复杂度和数据集大小排查问题

评价了机器学习模型在训练数据集和测试数据集上的表现。如果你改变过实验中的模型结构或者超参数&#xff0c;你也许发现了&#xff1a;当模型在训练数据集上更准确时&#xff0c;它在测试数据集上却不一定更准确。这是为什么呢&#xff1f; 训练误差和泛化误差 在解释上述现象…

常用Swagger注解汇总

常用Swagger注解汇总 前言 在实际编写后端代码的过程中&#xff0c;我们可能经常使用到 swagger 注解&#xff0c;但是会用不代表了解&#xff0c;你知道每个注解都有什么属性吗&#xff1f;你都用过这些属性吗&#xff1f;了解它们的作用吗&#xff1f;本文在此带大家总结一下…

6-2 SpringCloud快速开发入门:声明式服务消费 Feign实现消费者

声明式服务消费 Feign实现消费者 使用 Feign实现消费者&#xff0c;我们通过下面步骤进行&#xff1a; 第一步&#xff1a;创建普通 Spring Boot工程 第二步&#xff1a;添加依赖 <dependencies><!--SpringCloud 集成 eureka 客户端的起步依赖--><dependency>…

图解LeetCode——剑指 Offer 34. 二叉树中和为某一值的路径

一、题目 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。 二、示例 2.1> 示例 1&#xff1a; 【输入】root [5,4,8,11,null,13,4,7,2,null,null,5,1], t…

从 ChatGPT 爆火回溯 NLP 技术

ChatGPT 火遍了全网&#xff0c;多个话题频频登上热搜。见证了自然语言处理&#xff08;NLP&#xff09;技术的重大突破&#xff0c;体验到通用技术的无限魅力。GPT 模型是一种 NLP 模型&#xff0c;使用多层变换器&#xff08;Transformer&#xff09;来预测下一个单词的概率分…

cuda编程以及GPU基本知识

目录CPU与GPU的基本知识CPU特点GPU特点GPU vs. CPU什么样的问题适合GPU&#xff1f;GPU编程CUDA编程并行计算的整体流程CUDA编程术语&#xff1a;硬件CUDA编程术语&#xff1a;内存模型CUDA编程术语&#xff1a;软件线程块&#xff08;Thread Block&#xff09;网格&#xff08…