node.js解析word文档
最近接触了了一个简历管理的项目,需要将简历上传之后解析出里面的字段内容(如姓名、性别、教育经历、工作经历等),存入数据库中。简历的格式都是标准的格式,可参考猎聘下载下来的格式。
毫无疑问,第一个难点就是如何解析word的内容。
到npm去搜了一下相关的包,都不满足我的需求,直到发现了adm-zip这个包,这个包可以解压缩文件。其实word就是一个压缩包,把word解压后,有一个document.xml,里面就存放了word的内容,只需要解析这个xml文件就可以获取到数据了。
const admZip = require('adm-zip');// 解压word文档
const zip = new admZip('2.docx');
zip.extractAllTo('./output/2', true);// 提取内容
let contentXml = zip.readAsText("word/document.xml");
//console.log(contentXml);// 正则匹配文字
let matchWT = contentXml.match(/(<w:t>.*?<\/w:t>)|(<w:t\s.[^>]*?>.*?<\/w:t>)/gi);
matchWT = filter(matchWT);
console.log(matchWT);/*** 去除空白行* @param matchWT*/
function filter(matchWT) {let res = [];matchWT.forEach(function(wtItem) {//如果不是<w:t xml:space="preserve">格式if (wtItem !== '<w:t xml:space="preserve"> </w:t>') { {wtItem = wtItem.split('>');wtItem = wtItem[1].split('<');res.push(wtItem[0]);}});return res;
}
这样,我们就可以将简历的内容放入数组中,通过遍历数组就能匹配到对应的字段了。
在解压缩word文档的时候发现这个只能解压缩docx格式的文档,不能解析doc格式的文档。
node.js解析word文档相关推荐
- java word库_几种解析Word文档的Java类库比较
推荐指数:⭐ 因为之前做过EXCEL的解析,所以我首选就是POI,然而经过调查之后发现POI解析Word文档就是个坑,非常难用不说,有些功能还不支持.试验一番之后不得不放弃了. 推荐指数:⭐⭐⭐ 发现 ...
- js导出word文档 可以兼容IE8+浏览器适配其他浏览器
js导出word文档,兼容IE8浏览器 其他浏览器需要引入两个文件:FileSaver.js 和 jqueryWordExport.js 需要兼容IE8浏览器需要引用:FileSaver.js exc ...
- Java解析word文档,将word文档题库选择题导入
学习目标: Java解析word文档,将word文档题库导入 学会word文档的解析,以及各种题型的导入 学习内容: 解析word文档 获取正文文件内容 doc和docx两种解析 解析word文档 p ...
- 是的你没看错,js生成word文档
用js生成word文档 查看Demo 你可以生成一份 word 文档,在此文档中可以添加多种元素并设置多种属性. 可添加的元素 段落 超链接 标题 表格 列表 图片 可设置的属性 font:字体,比如 ...
- 浅谈Word.Application,关于js操作word文档的使用
这篇文章只是说个人放个笔记在这里,并没有讲解的意思,但为了进来的朋友能知道我在说啥,写的过程中我还是简单介绍一下. 官网地址:https://docs.microsoft.com/zh-cn/offi ...
- 使用jquery.wordexport.js导出word文档 设置行间距不生效问题
在使用jquery.wordexport.js导出word文档时 在js里设置的style margin-top不生效 生成的doc还是没有行间距 一通百度后 发现没用解决方法 后来发现有位 ...
- poi解析word文档(解析表格,emf,wmf,svg转jpg图片)
POI解析word文档 poi解析word的表格: 提前先准备需要的jar包: <!-- poi --><dependency><groupId>org.a ...
- java解析简历_java:解析word文档(前程无忧简历),最好有代码案例?poi或者jacob解析都可以,有jar资源,求急。感谢...
展开全部 poi读取前程无忧的简历会打不开的,至少我以前读是这样的,因为他有时候是mht文件32313133353236313431303231363533e59b9ee7ad943133336131 ...
- java如何解析word大纲_Java POI 解析word文档
实现步骤: 1.poi实现word转html 2.模型化解析html 3.html转Map数组 Map数组(数组的操作处理不做说明) 1.导jar包. 2.代码实现 package com.web.o ...
最新文章
- CNCF宣布containerd毕业
- CLLocationManager 位置定位
- 2.2.1生成数 自数
- python调整数组顺序使奇数位于偶数前面
- 自动化 CICD 与灰度发布
- 广文艺计算机综合美术,广东文艺职业学院2018年第二批合同制人员招聘专业技能考核和试讲题目...
- SAP ABAP Platform 1909最新版的 docker 镜像
- 学习Spring Boot:(五)使用 devtools热部署
- 可扩展的通用异常检测系统 EGADS
- 网络安全——终端安全
- 小鹤双拼学习指引-by小鹤双拼作者-散步的鹤
- 弘辽科技:淘宝评分飘绿四大原因及快速提高评分之解决技巧
- 未来规划——北京大学数院432应用统计备考攻略
- URL是什么意思 ? URL介绍
- Jmeter个人使用部分整理2021
- Oracle SQL
- 如何在Python中调用C++程序?(文中以Opencv为例,在Python中调用C++的Opencv)
- 71 ----二次曲面方程:椭球面、双曲面、抛物面、二次曲面的种类
- 2017年5月14日 星期日 --出埃及记 Exodus 26:2
- 从大盘数据看A股是否为政策市
热门文章
- rhq监控软件_用RHQ监视怪物
- YOLOv3使用笔记
- ArcGIS GeoEvent 使用教程(一)
- 虚拟盒子下装linux系统,eUnoBox(虚拟盒子) v3.14免费版
- Python报错TypeError: Descriptors cannot not be created directly
- 總結——關於2017 11 3測試的分析總結
- IE加载ocx时提示控件不安全的解决方法
- 易周金融 | 邮惠万家银行开业;微信公众号叫停四类金融营销宣传
- 人工智能:确定性推理
- 使用GIS空间分析进行植物生长区域选址(附练习数据下载)