nodejs 生成和導(dǎo)出 word的實例代碼
前段時間由于項目需求,得做excel和word的導(dǎo)出功能,excel的導(dǎo)出百度一下一大把,小伙伴們都寫的好詳細,基本打來改改就可以用,可導(dǎo)出word的功能,百度了貌似都找不到可用資料,哎,費解呀。后來找同事,同事們也沒整過,看來還得自己上呀。。。
第一次發(fā)現(xiàn)原來百度Google這強大,同事推薦的 http://www.baigoogledu.com/
百度Google一起擺 nodejs word 找到https://github.com/Ziv-Barber/officegen 看到這里您老是不就瞬間明白了,源碼介紹好詳細,認真看
npm install officegen 安裝office插件,支持導(dǎo)出word、excel、ppt
下邊附上我的word導(dǎo)出代碼,代碼有點糙,您老將就看哈
var officegen = require('officegen');
var fs = require('fs');
var path = require('path');
var docx = officegen ( 'docx' );
var async = require('async');
/**
* 導(dǎo)出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' } );// 創(chuàng)建行 設(shè)置居中
pObj.addText ( '血液透析(濾過)治療知情同意書', { bold: true,font_face: 'Arial', font_size: 18 });// 添加文字 設(shè)置字體樣式 加粗 大小
var pObj = docx.createP ();
pObj.addText ( '姓名' );
pObj.addText ( ' with color', { color: '000088' } );// 設(shè)置字體顏色
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 ( '一、血液透析(濾過)能有效清除身體內(nèi)過多的水分合霉素,是治療急性和慢性腎衰竭等疾病的有效方法。' );
var pObj = docx.createP ();
pObj.addText ( '二、血液透析(濾過)治療時,首先需要將患者血液引到體外,然后通過透析或濾過等方法清除水分和霉素,經(jīng)受理后的血液再回到患者體外。' );
var pObj = docx.createP ();
pObj.addText ( '三、為了有效引出血液,治療前需要建立血管通路(動靜脈內(nèi)痿或深靜脈插管)。' );
var pObj = docx.createP ();
pObj.addText ( '四、為防止血液在體外管路和透析器發(fā)生凝固,一般需要在透析前和透析過程中注射肝素等抗凝藥物。' );
var pObj = docx.createP ();
pObj.addText ( '五、血透過程中和治療期間存在下列醫(yī)療風險,可能造成嚴重后果,甚至危及生命:' );
var pObj = docx.createP ();
pObj.addText ( '1.低血壓,心力衰竭,心肌梗塞,心律失常,腦血管意外;' );
var pObj = docx.createP ();
pObj.addText ( '2.空氣球栓塞;' );
var pObj = docx.createP ();
pObj.addText ( '3.過敏反應(yīng);' );
var out = fs.createWriteStream ( 'out.docx' );// 文件寫入
out.on ( 'error', function ( err ) {
console.log ( err );
});
var result = docx.generate (out);// 服務(wù)端生成word
res.writeHead ( 200, {
// 注意這里的type設(shè)置,導(dǎo)出不同文件type值不同application/vnd.openxmlformats-officedocument.presentationml.presentation
"Content-Type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
'Content-disposition': 'attachment; filename=out.docx'
});
docx.generate (res);// 客戶端導(dǎo)出word
}
總結(jié)
以上所述是小編給大家介紹的nodejs 生成和導(dǎo)出 word的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Highcharts+NodeJS搭建數(shù)據(jù)可視化平臺示例
本篇文章主要介紹了Highcharts+NodeJS搭建數(shù)據(jù)可視化平臺,詳細的介紹了使用Highcharts框架的經(jīng)驗,有興趣的可以了解一下。2017-01-01
使用 Node.js 對文本內(nèi)容分詞和關(guān)鍵詞抽取
這篇文章主要介紹了使用 Node.js 對文本內(nèi)容分詞和關(guān)鍵詞抽取,需要的朋友可以參考下2017-05-05
Node.js刷新session過期時間的實現(xiàn)方法推薦
下面小編就為大家?guī)硪黄狽ode.js刷新session過期時間的實現(xiàn)方法推薦。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05

