koa上傳excel文件并解析的實現(xiàn)方法_第1頁
koa上傳excel文件并解析的實現(xiàn)方法_第2頁
koa上傳excel文件并解析的實現(xiàn)方法_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第koa上傳excel文件并解析的實現(xiàn)方法consterrorResult=require('../utils/errorResult.js');

constuploadExcelSrv=require('../service/uploadExcelSrv');

constsaveData=asyncfunction(ctx,next){

constgetRes=awaituploadExcelSrv.getExcelObjs(ctx);

if(getRes.status){

if(getRes.datas.length1){

errorResult.errorRes(ctx,'暫時不支持多個sheet存在');

}else{//得到的是數(shù)組

constobjs=getRes.datas[0];

ctx.body={

status:true,

msg:'上傳數(shù)據(jù)成功'

}else{

errorResult.errorRes(ctx,getRes.msg);

awaitnext();

module.exports={

saveData

3.處理excel存儲,解析,處理excel用的庫是xlsx

npminstallxlsx--save

uploadExcelSrv.js

//接收上傳的excel文件,保存解析返回objects

constxlsx=require('xlsx');

constfs=require('fs');

constpath=require('path');

constdownPath=path.resolve(__dirname,'../../fileUpload');

asyncfunctiongetExcelObjs(ctx){

constfile=ctx.request.files.file;//獲取上傳文件

constreader=fs.createReadStream(file.path);//創(chuàng)建可讀流

constext=.split('.').pop();//獲取上傳文件擴展名

constfilePath=`${downPath}/${Math.random().toString()}.${ext}`;

constupStream=fs.createWriteStream(filePath);//創(chuàng)建可寫流

constgetRes=awaitgetFile(reader,upStream);//等待數(shù)據(jù)存儲完成

constdatas=[];//可能存在多個sheet的情況

if(!getRes){//沒有問題

constworkbook=xlsx.readFile(filePath);

constsheetNames=workbook.SheetNames;//返回['sheet1',...]

for(constsheetNameofsheetNames){

constworksheet=workbook.Sheets[sheetName];

constdata=xlsx.utils.sheet_to_json(worksheet);

datas.push(data);

return{

status:true,

datas

}else{

return{

status:false,

msg:'上傳文件錯誤'

functiongetFile(reader,upStream){

returnnewPromise(function(result){

letstream=reader.pipe(upStream);//可讀流通過管道寫入可寫流

stream.on('finish',function(err

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論