91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs+express使用ejsexcel做復雜導出Excel

發布時間:2020-07-08 18:11:59 來源:網絡 閱讀:6389 作者:老鼠欺負貓 欄目:開發技術
  1. 注意:使用時需要了解模板接受的數據格式,并不是直接搞上去就可以了,凡是不是要有個吻合度嗎。
    • 從數據庫中取出數據
      nodejs+express使用ejsexcel做復雜導出Excel
  2. 大致處理后的數據格式為:
    nodejs+express使用ejsexcel做復雜導出Excel
  3. 這些都準備好了你還得需要樣東西,模板;
    nodejs+express使用ejsexcel做復雜導出Excel
    <%forRBegin rs,i in data[0]%>:開始循環;因為數據封裝為
    [
    [{},{},{},{}.....]
    ];所以通過data[0],
    即可取出所有數據,數組中套用數組;
    <%forREnd%>:結束循環;
    <%=rs.issue_name%>:通過你封裝的key來取值;
  4. 現在是代碼部分
    1. 加入ejsexcel
      var ejsexcel = require('ejsexcel');
      var fs = require('fs');
      當然,使用之前需要你添加這個模塊(npm install ejsexcel)
  5. ./ GET export excel test. 導出excel議題/
    router.get('/exportExcel', function (req, res, next) {
    var filedir = './public/uploadFile/temporaryFile/';
    fs.ensureDir(filedir, function (err) {
    });
    var meet_name = req.query.meet_name;
    try {
    //導出前判斷要導出的文件是否存在,自己根據需求
    fs.exists('./public/uploadFile/temporaryFile/' + meet_name + '_xxx.xlsx', function (r) {
    if (r) {
    fs.unlink('./public/uploadFile/temporaryFile/' + meet_name + '_xxx.xlsx', function (err) {
    if (err) throw err;
    })
    }
    issueService.getIssueInfo(1, 10000, meet_name, function (result) {
    //查詢數據
    if (result.rows.length < 1) {
    //沒有數據返回0頁面獲取判斷返回值做出相應的提示
    res.send("0");
    } else {
    fs.ensureDir(filedir, function (err) {});
    (async function () {
    var datas = [];
    var data = [];
    for (var i = 0; i < result.rows.length; i++) {
    /*
    處理數據為上述格式
    /
    data.push(result.rows[i]);
    }
    datas.push(data);
    //獲得Excel模板的buffer對象
    const exlBuf = await readFileAsync('./public/uploadFile/template/issue.xlsx');
    //用數據源(對象)data渲染Excel模板
    const exlBuf2 = await ejsexcel.renderExcel(exlBuf, datas);
    await writeFileAsync('./public/uploadFile/temporaryFile/' + meet_name + '_議題報表.xlsx', exlBuf2);
    setTimeout(() => {
    console.info("刪除議題");
    try {
    fs.access('./public/uploadFile/temporaryFile/' + meet_name + '_xxx.xlsx', fs.constants.F_OK,
    (err) => {
    if (!err) {
    fs.unlinkSync('./public/uploadFile/temporaryFile/' + meet_name + '_xxx.xlsx')
    }
    });
    } catch (e) {
    console.info("異常");
    console.error(e);
    }
    }, 5 60 1000);
    //返回生成的表格路徑提供下載
    res.send('/uploadFile/temporaryFile/' + meet_name + '_xxx.xlsx');
    })();
    }
    });
    });
    } catch (error) {
    //返回異常
    res.send("err");
    }
    });
    注:在任何時候,代碼出現問題不要捉急,看一下錯誤提示是否是哪個模塊沒加,或者是引號問題等等,總之
    新中越毛躁,解決問題所花費的時間越多
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

边坝县| 闵行区| 三亚市| 神木县| 广河县| 富宁县| 德昌县| 尤溪县| 长宁县| 毕节市| 永和县| 乌什县| 宁津县| 邻水| 吉木萨尔县| 新邵县| 台湾省| 正镶白旗| 始兴县| 平远县| 改则县| 平罗县| 新源县| 喀喇沁旗| 漠河县| 太仓市| 大安市| 福鼎市| 怀宁县| 固安县| 美姑县| 庆云县| 沙田区| 青州市| 瑞昌市| 疏附县| 龙口市| 开鲁县| 义马市| 拜城县| 正定县|