您好,登錄后才能下訂單哦!
前段時間由于項目需求,得做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的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。