前段時(shí)間由于項(xiàng)目需求,得做excel和word的導(dǎo)出功能,excel的導(dǎo)出百度一下一大把,小伙伴們都寫的好詳細(xì),基本打來改改就可以用,可導(dǎo)出word的功能,百度了貌似都找不到可用資料,哎,費(fèi)解呀。后來找同事,同事們也沒整過,看來還得自己上呀。。。
創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),呼圖壁網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:呼圖壁等地區(qū)。呼圖壁做網(wǎng)站價(jià)格咨詢:18982081108
第一次發(fā)現(xiàn)原來百度Google這強(qiáng)大,同事推薦的 http://www.baigoogledu.com/
百度Google一起擺 nodejs word 找到https://github.com/Ziv-Barber/officegen 看到這里您老是不就瞬間明白了,源碼介紹好詳細(xì),認(rèn)真看
npm install officegen
安裝office插件,支持導(dǎo)出word、excel、ppt
下邊附上我的word導(dǎo)出代碼,代碼有點(diǎn)糙,您老將就看哈
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 ( '二、血液透析(濾過)治療時(shí),首先需要將患者血液引到體外,然后通過透析或?yàn)V過等方法清除水分和霉素,經(jīng)受理后的血液再回到患者體外。' ); var pObj = docx.createP (); pObj.addText ( '三、為了有效引出血液,治療前需要建立血管通路(動靜脈內(nèi)痿或深靜脈插管)。' ); var pObj = docx.createP (); pObj.addText ( '四、為防止血液在體外管路和透析器發(fā)生凝固,一般需要在透析前和透析過程中注射肝素等抗凝藥物。' ); var pObj = docx.createP (); pObj.addText ( '五、血透過程中和治療期間存在下列醫(yī)療風(fēng)險(xiǎn),可能造成嚴(yán)重后果,甚至危及生命:' ); 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的實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!