视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
nodejs 生成和导出 word的实例代码
2020-11-27 22:10:55 责编:小采
文档


前段时间由于项目需求,得做excel和word的导出功能,excel的导出百度一下一大把,小伙伴们都写的好详细,基本打来改改就可以用,可导出word的功能,百度了貌似都找不到可用资料,哎,费解呀。后来找同事,同事们也没整过,看来还得自己上呀。。

第一次发现原来百度Google这强大,同事推荐的 http://www.baigoogledu.com/

百度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的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

下载本文
显示全文
专题