node上传word转html,NodeJs之word文件生成与解析的实现代码-程序员宅基地

技术标签: node上传word转html  

一,介绍与需求

1.1,介绍

1, officegen模块可以为Microsoft Office 2007及更高版本生成Office Open XML文件。此模块不依赖于任何框架,您不需要安装Microsoft Office,因此您可以将它用于任何类型的 JavaScript 应用程序。输出也是流而不是文件,不依赖于任何输出工具。此模块应适用于支持Node.js 0.10或更高版本的任何环境,包括Linux,OSX和Windows。

2, textract文本提取节点模块。

3, pdf2json是一个节点。js模块解析和转换PDF从二进制到json格式,它是用PDF构建的。并通过浏览器外的交互式表单元素和文本内容解析对其进行扩展。其目标是在web服务中包装时启用带有交互式表单元素的服务器端PDF解析,并在作为命令行实用程序使用时启用将本地PDF解析为json文件。

1.2,需求

二,文件生成导出

第一步:安装 officegen

cnpm install officegen --save

第二步:引入officegen

var officegen = require('officegen');

var fs = require('fs');

var docx = officegen('docx');//word

var pptx = officegen('pptx');//pptx

第三步:使用officegen docx

...

docx.on('finalize', function (written) {

console.log('Finish to create Word file.\nTotal bytes created: ' + written + '\n');

});

docx.on('error', function (err) {

console.log(err);

});

...

//var tows = ['id', 'provinceZh', 'leaderZh', 'cityZh', 'cityEn'];//创建一个和表头对应且名称与数据库字段对应数据,便于循环取出数据

var pObj = docx.createP({ align: 'center' });// 创建行 设置居中 大标题

pObj.addText('全国所有城市', { bold: true, font_face: 'Arial', font_size: 18 });// 添加文字 设置字体样式 加粗 大小

// let towsLen = tows.length

let dataLen = data.length

for (var i = 0; i < dataLen; i++) {//循环数据库得到的数据,因为取出的数据格式为

//[{"id" : "101010100","provinceZh" : "北京","leaderZh" : "北京","cityZh" : "北京","cityEn" : "beijing"},{…………},{…………}]

/************************* 文本 *******************************/

// var pObj = docx.createP();//创建一行

// pObj.addText(`(${i+1}), `,{ bold: true, font_face: 'Arial',});

// pObj.addText(`省级:`,{ bold: true, font_face: 'Arial',});

// pObj.addText(`${data[i]['provinceZh']} `,);

// pObj.addText(`市级:`,{ bold: true, font_face: 'Arial',});

// pObj.addText(`${data[i]['leaderZh']} `);

// pObj.addText(`县区:`,{ bold: true, font_face: 'Arial',});

// pObj.addText(`${data[i]['cityZh']}`);

/************************* 表格 *******************************/

let SingleRow = [data[i]['id'], data[i]['provinceZh'], data[i]['leaderZh'], data[i]['cityZh']]

table.push(SingleRow)

}

docx.createTable(table, tableStyle);

var out = fs.createWriteStream('out.docx');// 文件写入

out.on('error', function (err) {

console.log(err);

});

var result = docx.generate(out);// 服务端生成word

re

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34933151/article/details/117889034

智能推荐

实验记录 | 梳理关键结果_scsplitter 单细胞-程序员宅基地

文章浏览阅读207次。【大纲】基本素材:(1)文献:https://www.biorxiv.org/content/10.1101/2020.01.01.892562v1.full(2)ORBC的处理流程:https://github.com/tianshilu/QBRC-Somatic-Pipeline今天下午要完成的事情:(1)根据文献理明白,文献分析10X的数据,得到的关键结果是什么?(2)下载实验数据,数据的背景(研究什么问题)是什么?弄清楚实验分析从哪一处的数据开始?(3)梳理ORBC处理流程,开始运._scsplitter 单细胞

织梦dedecms v5.7使用sql标签实现静态分页-程序员宅基地

文章浏览阅读85次。为什么80%的码农都做不了架构师?>>> ..._网上查找关于dede:sql标签进行分页的解决方案时都不尽如人意,尤其是在列表页使用d

input框点击事件_使用 FormMaking 为表单添加事件处理-程序员宅基地

文章浏览阅读1.5k次。背景描述表单在日常使用中,面对很多特殊的业务场景,需要为表单中某些控件单独设置一些事件来做自定义操作。为此,我们为 FormMaking表单设计器 添加了新的功能,可以快速的对表单中的元素绑定各种事件,使得表单能够有更好的扩展性。查看 官方文档,可以了解到新版本添加了获取表单项组件的方法 getComponent,接下来我们用简单的例子来说明下如何为表单动态添加事件。表单输入框加入点击事件我们在表..._form generator的input添加事件

spring整合junit-程序员宅基地

文章浏览阅读97次。

认知-观察力:观察力-程序员宅基地

文章浏览阅读618次。ylbtech-认知-观察力:观察力观察力(observation ability),汉语词汇,是指大脑对事物的观察能力,如通过观察发现新奇的事物等,在观察过程对声音、气味、温度等事物有一个新的认识。1.返回顶部 1、中文名:观察力外文名:observation ability属性:指大脑对事物的观察能力,认识:对..._认知过程观察力

Python与Pytorch系列(一) 本文(2万字) | 解析python中的pandas.read_csv() | pandas.read_json() | pandas.read_excel()_pytorch中的pandas.read_csv-程序员宅基地

文章浏览阅读981次,点赞26次,收藏21次。官方网站pandas是一个Python包,并且它提供快速,灵活和富有表现力的数据结构。这样当我们处理"关系"或"标记"的数据(一维和二维数据结构)时既容易又直观。pandas是我们运用Python进行实际、真实数据分析的基础,同时它是建立在NumPy之上的。pandas.csv() 函数将逗号分离的值 (csv) 文件读入数据框架。还支持可选地将文件读入块或将其分解。源文件。_pytorch中的pandas.read_csv

随便推点

Spark配置参数详解_spark中preferredinstancemode参数是干嘛的-程序员宅基地

文章浏览阅读255次。以下是整理的Spark中的一些配置参数,官方文档请参考Spark Configuration。Spark提供三个位置用来配置系统:Spark属性:控制大部分的应用程序参数,可以用SparkConf对象或者Java系统属性设置 环境变量:可以通过每个节点的 conf/spark-env.sh脚本设置。例如IP地址、端口等信息 日志配置:可以通过log4j.properties配置Spa..._spark中preferredinstancemode参数是干嘛的

英飞凌 AURIX TC3XX 系列单片机的 CAN 外设介绍(一)_tc3xx canfd-程序员宅基地

文章浏览阅读3.3k次,点赞4次,收藏30次。讲述的是英飞凌 AURIX TC3XX 系列多核单片机的 MCMCAN 外设介绍_tc3xx canfd

使用cutlass实现多种精度的GEMM,支持cuda core与tensor core_cutlass gemm int8-程序员宅基地

文章浏览阅读682次,点赞13次,收藏12次。使用cutlass实现多种精度的GEMM,附有完整代码与cmakelist_cutlass gemm int8

windows10 64位下载、安装及配置JDK_jdk 64位-程序员宅基地

文章浏览阅读390次。windows10 64位下载、安装及配置JDK_jdk 64位

Linux常见的使用命令_yy复制当前行-程序员宅基地

文章浏览阅读653次。1、Linux简介 1、是一种开源的、免费的操作系统,安装在计算机的硬盘上的、用来管理计算机的硬件和 软件资源的系统软件,Linux注重安全性、稳定性、高并发处理能力、没有优异的可视化界 面,linux主要用于服务器上,windows主要用于个人计算机上 2、Linux的目录结构..._yy复制当前行

TexStudio 常用快捷键_texstudio使用其代码格式化功能-程序员宅基地

文章浏览阅读6k次,点赞6次,收藏14次。快捷键功能F7查看代码对应位置的PDFCtrl + T注释选定的代码块Ctrl + U取消注释选定的代码块F6编译代码F5构建并查看_texstudio使用其代码格式化功能