nodejs 生成和导出 word的实例代码


Posted in NodeJs onJuly 31, 2018

前段时间由于项目需求,得做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的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

NodeJs 相关文章推荐
详解nodejs微信公众号开发——4.自动回复各种消息
Apr 11 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 NodeJs
nodejs实现连接mongodb数据库的方法示例
Mar 15 NodeJs
nodejs取得当前执行路径的方法
May 13 NodeJs
nodejs express配置自签名https服务器的方法
May 22 NodeJs
CentOS7中源码编译安装NodeJS的完整步骤
Oct 13 NodeJs
nodejs log4js 使用详解
May 31 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 NodeJs
Nodejs封装类似express框架的路由实例详解
Jan 05 NodeJs
nodejs使用Sequelize框架操作数据库的实现
Oct 21 NodeJs
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
Jul 31 #NodeJs
nodejs 十六进制字符串型数据与btye型数据相互转换
Jul 30 #NodeJs
NodeJS 中Stream 的基本使用
Jul 30 #NodeJs
Nodejs实现爬虫抓取数据实例解析
Jul 05 #NodeJs
nodejs的路径问题的解决
Jun 30 #NodeJs
nodejs用gulp管理前端文件方法
Jun 24 #NodeJs
Nodejs异步回调之异常处理实例分析
Jun 22 #NodeJs
You might like
第九节--绑定
2006/11/16 PHP
10条PHP编程习惯助你找工作
2008/09/29 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
用javascript作一个通用向导说明
2011/08/30 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
JS实现div居中示例
2014/04/17 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
vue使用websocket的方法实例分析
2019/06/22 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
我所理解的JavaScript中的this指向
2020/09/04 Javascript
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
详解Django中间件执行顺序
2018/07/16 Python
python3学生名片管理v2.0版
2018/11/29 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
python循环定时中断执行某一段程序的实例
2019/06/29 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
增大python字体的方法步骤
2020/07/05 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
应聘编辑职位自荐信范文
2014/01/05 职场文书
公司离职证明标准样本
2014/10/05 职场文书
主题班会开场白
2015/06/01 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android