nodejs 生成和导出 word的实例代码
程序员文章站
2022-07-06 12:08:15
前段时间由于项目需求,得做excel和word的导出功能,excel的导出百度一下一大把,小伙伴们都写的好详细,基本打来改改就可以用,可导出word的功能,百度了貌似都找不...
前段时间由于项目需求,得做excel和word的导出功能,excel的导出百度一下一大把,小伙伴们都写的好详细,基本打来改改就可以用,可导出word的功能,百度了貌似都找不到可用资料,哎,费解呀。后来找同事,同事们也没整过,看来还得自己上呀。。。
第一次发现原来百度google这强大,同事推荐的
百度google一起摆 nodejs word 找到https://github.com/ziv-barber/officegen 看到这里您老是不就瞬间明白了,源码介绍好详细,认真看
npm install officegen
安装office插件,支持导出word、excel、ppt
下边附上我的word导出代码,代码有点糙,您老将就看哈
var officegen = require('officegen'); var fs = require('fs'); var path = require('path'); var docx = officegen ( 'docx' ); var async = require('async'); /** * 导出word */ exports.exportword = function(req, res) { console.log('exportword-------------'); 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 pobj = docx.createp ( { align: 'center' } );// 创建行 设置居中 pobj.addtext ( '血液透析(滤过)治疗知情同意书', { bold: true,font_face: 'arial', font_size: 18 });// 添加文字 设置字体样式 加粗 大小 var pobj = docx.createp (); pobj.addtext ( '姓名' ); pobj.addtext ( ' with color', { color: '000088' } );// 设置字体颜色 pobj.addtext ( '性别' ); pobj.addtext ( '', { color: '00ffff', back: '000088' } ); pobj.addtext ( '年龄' ); pobj.addtext ( '岁', { color: '000088' } ); var pobj = docx.createp (); pobj.addtext ( '门诊(住院)号' ); pobj.addtext ( ' with color', { color: '000088' } ); pobj.addtext ( '诊断' ); pobj.addtext ( '', { color: '000088'} ); var pobj = docx.createp (); pobj.addtext ( '一、血液透析(滤过)能有效清除身体内过多的水分合霉素,是治疗急性和慢性肾衰竭等疾病的有效方法。' ); var pobj = docx.createp (); pobj.addtext ( '二、血液透析(滤过)治疗时,首先需要将患者血液引到体外,然后通过透析或滤过等方法清除水分和霉素,经受理后的血液再回到患者体外。' ); var pobj = docx.createp (); pobj.addtext ( '三、为了有效引出血液,治疗前需要建立血管通路(动静脉内痿或深静脉插管)。' ); var pobj = docx.createp (); pobj.addtext ( '四、为防止血液在体外管路和透析器发生凝固,一般需要在透析前和透析过程中注射肝素等抗凝药物。' ); var pobj = docx.createp (); pobj.addtext ( '五、血透过程中和治疗期间存在下列医疗风险,可能造成严重后果,甚至危及生命:' ); var pobj = docx.createp (); pobj.addtext ( '1.低血压,心力衰竭,心肌梗塞,心律失常,脑血管意外;' ); var pobj = docx.createp (); pobj.addtext ( '2.空气球栓塞;' ); var pobj = docx.createp (); pobj.addtext ( '3.过敏反应;' ); var out = fs.createwritestream ( 'out.docx' );// 文件写入 out.on ( 'error', function ( err ) { console.log ( err ); }); var result = docx.generate (out);// 服务端生成word res.writehead ( 200, { // 注意这里的type设置,导出不同文件type值不同application/vnd.openxmlformats-officedocument.presentationml.presentation "content-type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", 'content-disposition': 'attachment; filename=out.docx' }); docx.generate (res);// 客户端导出word }
总结
以上所述是小编给大家介绍的nodejs 生成和导出 word的实例代码,希望对大家有所帮助
上一篇: Vue SSR 组件加载问题