nodejs批量修改word文档目录样式

news2024/12/23 20:35:13

工作中遇到一个需求:写个nodejs脚本,对word文档(1000+个)的目录页面进行美化。实现过程遇到不少麻烦,在此分享下。

整体思路

        众所周知,Docx格式的Word文档其实是个以xml文件为主的zip压缩包,所以,页面美化整体思路是:先将文档后缀名改为zip并解压到本地,然后将关键的XML文档解析为DOM树,再通过DOM操作对文档进行编辑,最后把修改好的内容替换到原文件中,打包好并恢复后缀名。

        其中,难点在于“文档编辑”,网上基本搜不到有用的资料,只能自行摸索,主要用到的依赖包为 cheerio,作用是用DOM的方式加载和操作XML文档,函数方法类似jQuery。(解压打包等常规操作,下文忽略)

一、定位目录内容

        将Word文档解压后,内部一般会包含上百个文件,其中,文档的文本内容均位于“word/document.xml”中;

// 加载XML文档DOM树
let $ = cheerio.load(fs.readFileSync(path.join(解压后的文件夹,'word/document.xml')), {
    normalizeWhitespace: false,
    xmlMode: true,
    decode

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

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

相关文章

c++仿函数--通俗易懂

1.仿函数是什么 仿函数也叫函数对象,是一种可以像函数一样被调用的对象。从编程实现的角度看,它是一个类,不过这个类重载了函数调用运算符() class Add { public:int operator()(int a, int b) {return a b;} }; 注意:使用的时…

玩转Docker | Docker基础入门与常用命令指南

玩转Docker | Docker基础入门与常用命令指南 引言基本概念help帮助信息常用命令管理镜像运行容器构建镜像其他Docker命令整理结语引言 Docker 是一种开源的应用容器引擎,它允许开发者将应用程序及其依赖打包进一个可移植的容器中,然后发布到任何流行的 Linux 机器上。这大大简…

【机器学习】22. 聚类cluster - K-means

聚类cluster - K-means 1. 定义2. 测量数据点之间的相似性3. Centroid and medoid4. Cluster之间距离的测量方式5. 聚类算法的类别6. K-mean7. 如何解决中心初始化带来的影响8. K-means问题:处理空集群9. 离群值的问题10. Bisecting K-means(二分K-means…

wsl2.0(windows linux子系统)使用流程

1.什么是wsl wsl指的是windows的linux子系统,最初是wsl1.0,靠windows内核来模拟linux内核,并不运行真正的linux内核,所以有时会有兼容性的问题。 而wsl2.0是基于windows自带的虚拟机功能hyper-v的,它会把设备上的每个…

大数据新视界 -- 大数据大厂之数据质量管理全景洞察:从荆棘挑战到辉煌策略与前沿曙光

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

硅谷甄选(11)角色管理

角色管理模块 10.1 角色管理模块静态搭建 还是熟悉的组件&#xff1a;el-card、el-table 、el-pagination、el-form <template><el-card><el-form :inline"true" class"form"><el-form-item label"职位搜索"><el-…

这5个堪称每日必看的网站,你都有所了解吗?

身为一名出色的UI设计师&#xff0c;能够迅速捕捉灵感、始终保持敏锐的审美眼光以及时刻洞悉行业动态&#xff0c;无疑是必备的职业素养与技能。今儿个小编就特意为各位小伙伴精心梳理了一些UI设计师绝对不容错过的绝佳网站哦。通过浏览这些网站&#xff0c;大家可以第一时间掌…

安全成为大模型的核心;大模型安全的途径:大模型对齐

目录 安全成为大模型的核心 大模型安全的途径:大模型对齐 人类反馈强化学习(RLHF) 直接偏好优化(DPO) 安全成为大模型的核心 大模型安全的途径:大模型对齐 大模型对齐技术(Alignment Techniques for Large Language Models)是确保大规模语言模型(例如GPT-4)的输…

<项目代码>YOLOv8 煤矸石识别<目标检测>

YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一个回归问题&#xff0c;能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法&#xff08;如Faster R-CNN&#xff09;&#xff0c;YOLOv8具有更高的…

练习LabVIEW第三十题

学习目标&#xff1a; 刚学了LabVIEW&#xff0c;在网上找了些题&#xff0c;练习一下LabVIEW&#xff0c;有不对不好不足的地方欢迎指正&#xff01; 第三十题&#xff1a; 用labview写一个获取当前系统时间的程序 开始编写&#xff1a; 前面板添加一个字符串显示控件&am…

NVR设备ONVIF接入平台EasyCVR视频分析设备平台视频质量诊断技术与能力

视频诊断技术是一种智能化的视频故障分析与预警系统&#xff0c;NVR设备ONVIF接入平台EasyCVR通过对前端设备传回的码流进行解码以及图像质量评估&#xff0c;对视频图像中存在的质量问题进行智能分析、判断和预警。这项技术在安防监控领域尤为重要&#xff0c;因为它能够确保监…

springboot框架使用mybatis-plus3.5.1以下版本的代码生成器工具类

我们在使用springboot 框架 和mybatis-plus 开发web项目的时候&#xff0c;像 控制器 这类的文件 有了这个基于mybatis-plus 的 代码生成器 我们就不必自己创建了 &#xff0c;直接执行后 自动帮我们生成好控制器、服务处、实现层 等等 非常的方便 。 废话不多说&#xff0c;还…

价值为王,浅析基础大模型行业应用创新发展新路径

在2024年7月的世界人工智能大会&#xff08;WAIC&#xff09;上&#xff0c;百度董事长兼首席执行官李彦宏关于大模型的演讲引起了广泛关注。他在演讲中强调了大模型应用的重要性&#xff0c;并提出了一个观点&#xff1a;“没有应用的大模型一文不值”。这一观点直指当前人工智…

Linux中部署PostgreSQL保姆级教程

一、版本说明 本文采用的版本号是postgresql-14.4。 官网资源包下载地址&#xff1a;PostgreSQL: File Browser 二、安装前的准备 2.1安装依赖 2.1.1安装编译工具 yum install -y gcc gcc-c这个命令安装了 GNU 编译器集合&#xff08;gcc&#xff09;和 GNU C 编译器&#x…

11月1日笔记(UAC绕过)

Bypass UAC 用户账户控制(User Account Control&#xff0c;UAC)是 Windows 操作系统采用的一种控制机制&#xff0c;可以阻止自动安装未经授权的应用并防止意外更改系统设置&#xff0c;有助于防止恶意软件损坏计算机。用户账户控制使应用程序和任务始终在非管理员账户的安全…

什么是计算机视觉算法?——深度剖析背后的技术与应用

计算机视觉&#xff08;Computer Vision&#xff09;作为人工智能的重要分支&#xff0c;正在逐渐改变我们的生活。从人脸识别到自动驾驶&#xff0c;从医疗影像诊断到视频监控&#xff0c;计算机视觉的应用无处不在&#xff0c;而支撑这一切的正是计算机视觉算法。那么&#x…

客户案例 | Ansys助力Lumotive将设计周期缩短两到三个数量级

“我们使用Ansys Lumerical FDTD、亚马逊云科技&#xff08;AWS&#xff09;和 Python API设计了这种超表面&#xff0c;同时使其与CMOS制造公差兼容。Lumerical的AWS解决方案有助于Lumotive将设计周期缩短两到三个数量级&#xff0c;而且不会增加成本或降低准确性。” —— P…

如何打开/关闭 GitLab 的版本检查功能?

本文分享如何打开/关闭 GitLab 的版本检查功能。 极狐GitLab 是 GitLab 的中国发行版【https://dl.gitlab.cn/ncecn6kb】&#xff0c;中文版本对中国用户更友好&#xff0c;文章以私有化部署的极狐GitLab 实例来演示版本检查功能的开启和关闭。强烈不建议关闭该功能&#xff0…

软件测试学习笔记丨Selenium复用已打开浏览器

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/22520 本文为霍格沃兹测试开发学社的学习经历分享&#xff0c;写出来分享给大家&#xff0c;希望有志同道合的小伙伴可以一起交流技术&#xff0c;一起进步~ 说明&#xff1a;本篇博客基于sel…

Java并发常见面试题总结(下)

Map&#xff08;重要&#xff09; HashMap 和 Hashtable 的区别 线程是否安全&#xff1a; HashMap 是非线程安全的&#xff0c;Hashtable 是线程安全的,因为 Hashtable 内部的方法基本都经过synchronized 修饰。&#xff08;如果你要保证线程安全的话就使用 ConcurrentHashMa…