溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

nodejs 生成和導(dǎo)出 word的實(shí)例代碼

發(fā)布時(shí)間:2020-09-07 10:47:55 來(lái)源:腳本之家 閱讀:401 作者:北極眺望南極 欄目:web開(kāi)發(fā)

前段時(shí)間由于項(xiàng)目需求,得做excel和word的導(dǎo)出功能,excel的導(dǎo)出百度一下一大把,小伙伴們都寫(xiě)的好詳細(xì),基本打來(lái)改改就可以用,可導(dǎo)出word的功能,百度了貌似都找不到可用資料,哎,費(fèi)解呀。后來(lái)找同事,同事們也沒(méi)整過(guò),看來(lái)還得自己上呀。。。

第一次發(fā)現(xiàn)原來(lái)百度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 ( '血液透析(濾過(guò))治療知情同意書(shū)', { 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 ( '門(mén)診(住院)號(hào)' );
  pObj.addText ( ' with color', { color: '000088' } );
  pObj.addText ( '診斷' );
  pObj.addText ( '', { color: '000088'} );
  var pObj = docx.createP ();
  pObj.addText ( '一、血液透析(濾過(guò))能有效清除身體內(nèi)過(guò)多的水分合霉素,是治療急性和慢性腎衰竭等疾病的有效方法。' );
  var pObj = docx.createP ();
  pObj.addText ( '二、血液透析(濾過(guò))治療時(shí),首先需要將患者血液引到體外,然后通過(guò)透析或?yàn)V過(guò)等方法清除水分和霉素,經(jīng)受理后的血液再回到患者體外。' );
  var pObj = docx.createP ();
  pObj.addText ( '三、為了有效引出血液,治療前需要建立血管通路(動(dòng)靜脈內(nèi)痿或深靜脈插管)。' );
  var pObj = docx.createP ();
  pObj.addText ( '四、為防止血液在體外管路和透析器發(fā)生凝固,一般需要在透析前和透析過(guò)程中注射肝素等抗凝藥物。' );
  var pObj = docx.createP ();
  pObj.addText ( '五、血透過(guò)程中和治療期間存在下列醫(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.過(guò)敏反應(yīng);' );
  var out = fs.createWriteStream ( 'out.docx' );// 文件寫(xiě)入
 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í)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)億速云網(wǎng)站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI