node上传word转html,NodeJs之word文件生成与解析的实现代码

一,介绍与需求

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值