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异步编程
Dec 04 NodeJs
Nodejs学习笔记之Stream模块
Jan 13 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
Nodejs回调加超时限制两种实现方法
Jun 09 NodeJs
nodejs模块学习之connect解析
Jul 05 NodeJs
nodejs 搭建简易服务器的图文教程(推荐)
Jul 18 NodeJs
NodeJS简单实现WebSocket功能示例
Feb 10 NodeJs
Nodejs模块载入运行原理
Feb 23 NodeJs
nodejs 生成和导出 word的实例代码
Jul 31 NodeJs
nodejs图片处理工具gm用法小结
Dec 12 NodeJs
NodeJs操作MongoDB教程之分页功能以及常见问题
Apr 09 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 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
最新的php 文件上传模型,支持多文件上传
2009/08/13 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
基于php权限分配的实现代码
2013/04/28 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
python中学习K-Means和图片压缩
2017/11/20 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
2014年计生标语
2014/06/23 职场文书
地理科学专业自荐信
2014/09/01 职场文书
委托书范本
2014/09/13 职场文书
在职证明书模板
2015/06/15 职场文书
红色革命电影观后感
2015/06/18 职场文书
导游词之大雁塔景区
2019/09/17 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL