久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

NodeJs怎么實現下載Excel文件功能?

NodeJs怎么實現下載Excel文件功能?下面本篇文章就來給大家介紹一下。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

NodeJs怎么實現下載Excel文件功能?

【視頻教程推薦:node js教程 】

nodejs作為一門新的語言,報表功能也不是十分完善。

(1).js-xlsx : 目前 Github 上 star 數量最多的處理 Excel 的庫,支持解析多種格式表格XLSX / XLSM / XLSB / XLS / CSV,解析采用純js實現,寫入需要依賴nodejs或者FileSaver .js實現生成寫入Excel,可以生成子表Excel,功能強大,但上手難度稍大。不提供基礎設置Excel表格api例單元格寬度,文檔有些亂,不適合快速上手;

https://github.com/SheetJS/js-xlsx

(2).node-xlsx : 基于Node.js解析excel文件數據及生成excel文件,僅支持xlsx格式文件;

https://github.com/mgcrea/node-xlsx

(3).excel-parser : 基于Node.js解析excel文件數據,支持xls及xlsx格式文件,需要依賴python,太重不太實用;

https://github.com/leftshifters/excel-parser

(4).excel-export : 基于Node.js將數據生成導出excel文件,生成文件格式為xlsx,可以設置單元格寬度,API容易上手,無法生成worksheet字表,比較單一,基本功能可以基本滿足;

https://github.com/functionscope/Node-Excel-Export

(5).node-xlrd : 基于node.js從excel文件中提取數據,僅支持xls格式文件,不支持xlsx,有點過時,常用的都是XLSX 格式。

nodejs剛出來那幾年開發人員寫了很多node依賴庫,但是大部分現在處于不維護狀態。

現在還在持續更新的只有node-xlsx excel-export推薦使用,js-xlsx作為一個大而全的基礎庫(雖然現在也不在更行了,此庫最大的問題是api十分不友好,學習曲線高)有能力的項目組可以進一步封裝,。

本篇為一個簡單的下載的DEMO ,就簡單使用excel-export,

var express = require('express');var router = express.Router();var server =  express();  server.use('/api', router);  var nodeExcel = require('excel-export');   const disableLayout ={layout: false};   router.get('/test', function(req, res, next) {      res.json({          code:200      })  })  // disable interface layout.hbs  user config layout: falserouter.get('/exportExcel/:id', function(req, res, next) {    var conf ={};     conf.stylesXmlFile = "styles.xml";     conf.name = "mysheet";     conf.cols = [{         caption:'string',         type:'string',         beforeCellWrite:function(row, cellData){            return cellData.toUpperCase();         },         width:300     },{         caption:'date',         type:'date',         beforeCellWrite:function(){            var originDate = new Date(Date.UTC(1899,11,30));            return function(row, cellData, eOpt){                 console.log((cellData - originDate));                if (eOpt.rowNum%2){                     eOpt.styleIndex = 1;                 }                else{                     eOpt.styleIndex = 2;                 }                if (cellData === null){                     eOpt.cellType = 'string';                    return 'N/A';                 } else                     return (cellData - originDate) / (24 * 60 * 60 * 1000);             }         }()     },{         caption:'bool',         type:'bool'     },{         caption:'number',         type:'number'     }];     conf.rows = [         ['pi', '2013-12-5', true, 3.14],         ["e", new Date(2012, 4, 1), false, 2.7182],         ["M&M<>'", new Date(Date.UTC(2013, 6, 9)), false, 1.61803],         ["null date", null, true, 1.414]     ];    var result = nodeExcel.execute(conf);     res.setHeader('Content-Type', 'application/vnd.openxmlformats');     res.setHeader("Content-Disposition", "attachment; filename=" + encodeURIComponent("導出列表")+".xlsx");     res.end(result, 'binary'); });   router.get('/exportmultisheetExcel/:id', function(req, res, next) {    var confs = [];    var conf = {};     conf.cols = [{         caption: 'string',         type: 'string'     },         {             caption: 'date',             type: 'date'         },         {             caption: 'bool',             type: 'bool'         },         {             caption: 'number 2',             type: 'number'         }];     conf.rows = [['hahai', (new Date(Date.UTC(2013, 4, 1))).oaDate(), true, 3.14], ["e", (new Date(2012, 4, 1)).oaDate(), false, 2.7182], ["M&M<>'", (new Date(Date.UTC(2013, 6, 9))).oaDate(), false, 1.2], ["null", null, null, null]];    for (var i = 0; i < 3; i++) {         conf = JSON.parse(JSON.stringify(conf));   //clone         conf.name = 'sheet'+i;         confs.push(conf);     }    var result = nodeExcel.execute(confs);     res.setHeader('Content-Type', 'application/vnd.openxmlformats');     res.setHeader("Content-Disposition", "attachment; filename=" + "Report.xlsx");     res.end(result, 'binary'); });var server=server.listen(8080,function(){     console.log('8080') })

3.excel-export 提供了4種類型的數據格式,數字,時間,真假,默認字符串

cols可以為設置列類型的 caption為列名(會填充第一行的內容),type為列數據類型,beforeCellWrite可以在填充之前對數據進行邏輯處理,width可以定義寬帶

rows為一個二位數組,直接按照行列方式填充excel的內容

name定義sheet的名字

值得注意的時候excel-export如果需要定義excel的默認格式,需要引用一個excel的格式頭,這個頭定義在styles.xml中,這個文件可以在node_modules/example/styles.xml中拷貝的項目對應目錄

例子用的是根目錄,所以我們需放在根目錄,不然就會報找不到這個文件。

實際開發中,有時候excel的文件導出時要用中文,這時候要設置下header和格式化中文即可

res.setHeader('Content-Type', 'application/vnd.openxmlformats;charset=utf-8');
res.setHeader("Content-Disposition", "attachment; filename=" +encodeURIComponent("導出列表")+".xlsx");

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
欧美a级片一区| 国产精品v亚洲精品v日韩精品| 亚洲精品91| 一区二区三区四区日韩| 亚洲性色av| 香蕉久久精品| 久久国内精品视频| 日韩黄色在线观看| 国产精品毛片aⅴ一区二区三区| 欧美日韩一区自拍| 色网在线免费观看| 六月丁香综合| 日本亚洲最大的色成网站www | 不卡在线一区| 国产精品一区二区av交换 | 亚洲韩日在线| 91p九色成人| av亚洲免费| 日韩1区在线| 国产精品一卡| 国产激情在线播放| 91精品在线免费视频| 激情综合自拍| 成人精品久久| 国产欧美欧美| 久久精品99国产精品日本| 亚洲激情黄色| 国产精品蜜月aⅴ在线| 精品一区免费| 四虎精品一区二区免费| 久久午夜视频| 国产精品久久久亚洲一区| 视频一区日韩精品| 成人日韩av| 欧美日韩国产传媒| 国产欧美日韩影院| 久久久久91| 牛牛精品成人免费视频| 国产极品久久久久久久久波多结野| 国产欧美日本| 国产精品欧美日韩一区| 日本免费一区二区视频| 91精品成人| 在线日韩中文| 久久免费高清| 日韩在线欧美| av在线资源| 国产在线|日韩| 久久夜色精品| 婷婷亚洲成人| 国产精品一页| 欧美www视频在线观看| 红杏一区二区三区| 久久夜色精品| 国产日韩精品视频一区二区三区| 久久精品福利| 久草精品视频| 日韩免费av| 香蕉视频亚洲一级| 国产精品久久久久久久免费观看| 九色精品91| 特黄特色欧美大片| 激情五月综合网| 免费在线看一区| 欧美亚洲色图校园春色| 国产精品videossex| 精品国产亚洲日本| 99久久激情| 午夜天堂精品久久久久| 国产图片一区| 欧美成人一二区| 91亚洲自偷观看高清| 午夜在线播放视频欧美| 日韩av在线播放中文字幕| 美女视频黄久久| 亚洲免费在线| 国产一区一一区高清不卡| 不卡视频在线| 国产精品1区在线| 国产精品老牛| 日韩精品一区二区三区免费观影 | 精品福利久久久| 久久精品123| 国产精品久av福利在线观看| 午夜国产精品视频| 欧美成人基地| 五月天激情综合网| 国产精品久久观看| 国产精品三级| 日韩欧美不卡| 国产精品麻豆成人av电影艾秋| 国产日韩欧美一区二区三区在线观看 | 美女精品久久| 91精品韩国| 一本一道久久a久久精品蜜桃| 99视频一区| 日韩一区精品| 国产一区二区三区日韩精品| 国产另类在线| 婷婷久久免费视频| 国产女优一区| 69堂精品视频在线播放| 水野朝阳av一区二区三区| 久久精品欧美一区| 综合日韩av| 国产欧美三级| 国产私拍福利精品视频二区| 免费在线小视频| 国产传媒在线| 国产日韩欧美| 蜜桃91丨九色丨蝌蚪91桃色| 日韩一二三区在线观看| 一区二区三区四区在线看| 亚洲开心激情| 日本少妇一区| 日韩欧美1区| 日韩精品1区| av中文资源在线资源免费观看| 亚洲国产不卡| 亚洲精品观看| 国产精品一区亚洲| 欧美日韩99| 国产精品久久观看| 欧美黄色一区二区| 日韩精品dvd| 91九色精品| 亚洲一区国产一区| 三级小说欧洲区亚洲区| 亚洲一区成人| 亚洲专区视频| 亚洲不卡av不卡一区二区| 蜜桃免费网站一区二区三区| 久久精品欧洲| 日韩成人精品一区二区| 你懂的国产精品永久在线| 亚洲精品91| 日韩美女精品| 野花国产精品入口| 日本大胆欧美人术艺术动态| 亚洲一区二区网站| 视频在线观看一区二区三区| 夜夜精品视频| 三级欧美在线一区| 国产欧美丝祙| 在线一区视频观看| 免费高清在线一区| 国产va在线视频| 中文字幕日韩亚洲| 久久av综合| 乱人伦精品视频在线观看| 亚洲一区欧美| 超级白嫩亚洲国产第一| 日本va欧美va瓶| 欧美激情视频一区二区三区免费 | 国产精品尤物| 久久激情一区| 久久不见久久见中文字幕免费| 免费久久99精品国产| 国产精品流白浆在线观看| 国产一区二区三区四区五区| 亚洲欧美久久| 欧美日韩网址| 99久久九九| 老牛国内精品亚洲成av人片| 国产在线不卡一区二区三区| 中日韩男男gay无套| 久久在线91| 青青草伊人久久| 久久国产直播| 久久永久免费| 久久亚洲视频| 91精品国产乱码久久久久久久| 亚洲电影在线一区二区三区| 欧美亚洲福利| 久久亚洲欧美| 欧美日韩高清| 9999国产精品| 日本亚洲视频在线| 欧美日韩视频| 欧美香蕉视频| 日韩午夜av| 久久在线电影| 播放一区二区| 久久影院一区二区三区| 中文一区一区三区免费在线观| av中文字幕在线观看第一页| 亚洲bt欧美bt精品777| 高清在线一区| 成人在线免费观看网站| 国产精品美女久久久浪潮软件| 综合激情一区| 久久久久久久久99精品大| 久久精品国产久精国产| 国产精品一区毛片| 国产美女撒尿一区二区| 日韩1区2区3区| 日韩激情视频网站| 亚洲精选av| 日韩av不卡在线观看| 国产欧美日韩免费观看|