亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

nodejs導出excel的方法

2019-11-20 12:08:05
字體:
來源:轉載
供稿:網友

本文實例講述了nodejs導出excel的方法。分享給大家供大家參考。具體如下:

nodejs 對查詢數據生成excel并下載,采用方式先生成本excel文件,然后再下載;通過比較采用excel-export插件代碼如下:

excel.js代碼:

var extend = require("extend");var fs = require("fs");var excelExport = require('excel-export');var guid=require('guid');var path=require('path');var excel=function(){this.req=null;this.resp=null;};/*** 生成excel文件* @param params*/excel.prototype.createExcel=function(params){var setting={savePath:"uploadFile/excel/"};setting=extend({},setting,params);var uuid=guid.create();var data=params.data||"";var result = excelExport.execute(data);var name='excel'+uuid+'.xlsx';var filePath= path.resolve(setting.savePath, name);fs.writeFile(filePath, result, 'binary',function(err){setting.cb(filePath);});}/*** 計算上次的斷點信息* @param range* @returns {number}* @private*/excel.prototype._calStartPosition = function(range) {var startPos = 0;if( typeof range != 'undefined') {var startPosMatch = /^bytes=([0-9]+)-$/.exec(range);startPos = Number(startPosMatch[1]);}return startPos;}excel.prototype._configHeader = function(config) {var startPos = config.startPos,fileSize = config.fileSize,resp = this.resp;// 如果startPos為0,表示文件從0開始下載的,否則則表示是斷點下載的。if(startPos == 0) {resp.setHeader('Accept-Range', 'bytes');} else {resp.setHeader('Content-Range', 'bytes ' + startPos + '-' + (fileSize - 1) + '/' + fileSize);}resp.writeHead(206, 'Partial Content', {'Content-Type' : 'application/octet-stream'});}excel.prototype._init = function(filePath, down) {var config = {};var self = this;fs.stat(filePath, function(error, state) {if(error)throw error;config.fileSize = state.size;var range = self.req.headers.range;config.startPos = self._calStartPosition(range);self.config = config;self._configHeader(config);down();});}/*** 下載文件* @param filePath 文件路徑* @param req* @param res* @param isDeleted 下載完成后是否刪除文件,true刪除*/excel.prototype.download = function(filePath,req,res,isDeleted) {var self = this;self.req=req;self.resp = res;path.exists(filePath, function(exist) {if(exist) {self._init(filePath, function() {var config = self.configresp = self.resp;fReadStream = fs.createReadStream(filePath, {encoding : 'binary',bufferSize : 1024 * 1024,start : config.startPos,end : config.fileSize});fReadStream.on('data', function(chunk) {resp.write(chunk, 'binary');});fReadStream.on('end', function() {//是否刪除文件if(isDeleted) {fs.unlink(filePath, function (err, res) {});}resp.end();});});}else {console.log('文件不存在!');return;}});}module.exports=new excel();

調用方式:

var excel=require('../lib/excelHelper.js');exports.exportExcel=function(req,res){var conf ={};conf.cols = [{caption:'string', type:'string'},{caption:'date', type:'string'},{caption:'bool', type:'bool'},{caption:'number', type:'number'}];conf.rows = [['pi', '2015-06-29', true, 3.14],["e", '2015-06-29', false, 2.7182]];var filename ="導出excel.xlsx";res.setHeader('Content-Disposition', 'attachment; filename='+encodeURIComponent(filename));excel.createExcel({data:conf,savePath:"uploadFile/excel/",cb:function(path){excel.download(path,req, res,true);}});}

希望本文所述對大家的nodejs程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美女精品久久久| 欧美性猛交丰臀xxxxx网站| 国产精品国语对白| 97视频在线观看免费高清完整版在线观看| 国产激情视频一区| 日韩电影网在线| 久久99热这里只有精品国产| 久久人人爽人人爽爽久久| 精品国产精品三级精品av网址| 亚洲精品www| 福利二区91精品bt7086| 1769国内精品视频在线播放| 欧美日韩另类在线| 欧美精品久久久久久久久| 亚洲一区二区三区四区在线播放| 亚洲精品久久久久久久久久久久| 日韩亚洲精品视频| 午夜欧美大片免费观看| 亚洲国产高清福利视频| 欧美激情在线狂野欧美精品| 亚洲精品乱码久久久久久金桔影视| 国产精品一区av| 亚洲第一区中文字幕| 精品高清美女精品国产区| 亚洲另类图片色| 国产丝袜精品第一页| 久久精品国产亚洲一区二区| 国产经典一区二区| 亚洲香蕉在线观看| 亚洲第一视频在线观看| 欧美一级成年大片在线观看| 亚洲区免费影片| 欧美亚洲国产视频小说| 日韩精品免费综合视频在线播放| 91系列在线观看| 欧美另类69精品久久久久9999| 欧美日韩亚洲视频| 亚洲高清免费观看高清完整版| 国产精品第8页| 亚洲第一区中文99精品| 亚洲综合一区二区不卡| 国产精品视频在线播放| 日韩视频免费观看| 欧美激情视频在线观看| 国产精品久久久久91| 欧美亚洲国产日韩2020| 欧美成人免费观看| 国产亚洲日本欧美韩国| 78m国产成人精品视频| 欧美激情视频在线免费观看 欧美视频免费一| 久久久久久国产免费| 91免费精品视频| 黑人巨大精品欧美一区二区一视频| 亚洲一区二区三区777| 亚洲新声在线观看| 大胆人体色综合| 全亚洲最色的网站在线观看| 中文字幕亚洲综合久久| 亚洲va欧美va在线观看| 欧美专区在线视频| 欧美日韩一区二区在线| 一区二区欧美亚洲| 国产精品无av码在线观看| 操人视频在线观看欧美| 欧洲亚洲在线视频| 亚洲片国产一区一级在线观看| 日韩中文字幕在线看| 欧美老女人性生活| 亚洲第一区在线观看| 国产亚洲精品激情久久| 欧美日韩国产激情| 亚洲无av在线中文字幕| 久久综合免费视频| 亚洲国产小视频在线观看| 亚洲一区二区三区sesese| 亚洲精品一区二区三区婷婷月| 色妞一区二区三区| 日韩精品在线观看一区| 亚洲免费av电影| 日韩电影大全免费观看2023年上| 538国产精品一区二区在线| 久久的精品视频| 成人国产精品久久久久久亚洲| xvideos成人免费中文版| 韩国精品久久久999| 亚洲成avwww人| 国产99视频在线观看| 亚洲自拍偷拍一区| 欧美最猛性xxxxx(亚洲精品)| 成人性生交xxxxx网站| 欧美激情一区二区三区久久久| 久久这里有精品视频| 亚洲精品视频在线播放| 欧美电影免费在线观看| 欧美日韩性视频| 北条麻妃99精品青青久久| 国产成人免费av| 国产精品第3页| 疯狂做受xxxx高潮欧美日本| 国产美女精品视频| 91亚洲人电影| 亚洲欧美日韩精品久久亚洲区| 欧美视频一区二区三区…| 国产午夜精品美女视频明星a级| 精品一区二区三区四区在线| 欧美日韩国产色| 国产大片精品免费永久看nba| 91欧美精品午夜性色福利在线| 日韩av影片在线观看| 精品成人久久av| 欧美日韩高清区| 久久久噜噜噜久噜久久| 国产成人精品一区二区| 91欧美精品午夜性色福利在线| 久久久亚洲精选| 国产欧美一区二区三区久久人妖| 亚洲激情视频在线播放| 7m第一福利500精品视频| 久久午夜a级毛片| 国产精品麻豆va在线播放| 不卡av电影在线观看| 国产一区二区三区在线播放免费观看| 亚洲成人激情在线观看| 伦伦影院午夜日韩欧美限制| 欧美日韩精品中文字幕| 69久久夜色精品国产69| 亚洲一区第一页| 红桃av永久久久| 91欧美精品成人综合在线观看| 国产剧情日韩欧美| 欧美性猛交xxxx黑人猛交| 亚洲国产精品专区久久| 在线播放国产一区二区三区| 亚洲最大成人免费视频| 中文欧美在线视频| 色99之美女主播在线视频| 97高清免费视频| 成人美女av在线直播| 亚洲国产美女久久久久| 日韩va亚洲va欧洲va国产| 精品国产一区二区三区久久狼黑人| 国产精品69久久久久| 日韩在线视频免费观看| 欧美怡春院一区二区三区| 日韩视频免费在线观看| 国产精品美女久久久久av超清| 欧美一级大片在线免费观看| 成人妇女免费播放久久久| 精品毛片三在线观看| 国产美女久久精品香蕉69| 成人黄色免费看| 久久国产一区二区三区| 国产精品免费久久久久影院| 欧美精品在线视频观看| 国产精品视频白浆免费视频| 日韩一区二区福利| 亚洲自拍偷拍色图| 欧美电影免费观看电视剧大全| 欧美午夜宅男影院在线观看| xxx成人少妇69| 久久久精品国产一区二区| 97精品国产91久久久久久| 精品视频9999| 精品久久中文字幕|