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的前后端分离的思考与实践(四)安全问题解决方案
Sep 26 NodeJs
nodejs中实现路由功能
Dec 29 NodeJs
Nodejs爬虫进阶教程之异步并发控制
Feb 15 NodeJs
Nodejs中的this详解
Mar 26 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
async/await与promise(nodejs中的异步操作问题)
Mar 03 NodeJs
nodejs个人博客开发第六步 数据分页
Apr 12 NodeJs
nodeJS微信分享
Dec 20 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
nodejs express配置自签名https服务器的方法
May 22 NodeJs
NVM安装nodejs的方法实用步骤
Jan 16 NodeJs
nodejs中的异步编程知识点详解
Jan 17 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 版本]
2007/03/20 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
php 如何获取数组第一个值
2013/08/06 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
JavaScript面象对象设计
2008/04/28 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
JavaScript window.location对象
2014/11/14 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
ReactRouter的实现方法
2021/01/25 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
python访问类中docstring注释的实现方法
2015/05/04 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
学习Python需要哪些工具
2020/09/04 Python
用 python 进行微信好友信息分析
2020/11/28 Python
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
一篇.NET面试题
2014/09/29 面试题
代理班主任的自我评价
2014/02/04 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
大学生先进事迹材料
2014/02/16 职场文书
感谢信
2019/04/11 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python