使用koa怎么上傳excel文件并解析?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1.中間鍵使用 koa-body
npm install koa-body --save
const koaBody = require('koa-body'); app.use(koaBody({ multipart: true, formidable: { maxFileSize: 200 * 1024 * 1024 // 設置上傳文件大小大限制,默認2M } }));
2.書寫路由,croller書寫方法
uploadData.js
const errorResult = require('../utils/errorResult.js'); const uploadExcelSrv = require('../service/uploadExcelSrv'); const saveData = async function (ctx, next) { const getRes = await uploadExcelSrv.getExcelObjs(ctx); if (getRes.status) { if (getRes.datas.length > 1) { errorResult.errorRes(ctx, '暫時不支持多個sheet存在'); } else { //得到的是數(shù)組 const objs = getRes.datas[0]; ctx.body = { status: true, msg: '上傳數(shù)據成功' }; } } else { errorResult.errorRes(ctx, getRes.msg); } await next(); }; module.exports = { saveData };
3.處理excel存儲,解析,處理excel用的庫是 xlsx
npm install xlsx --save
uploadExcelSrv.js
//接收上傳的excel文件,保存解析返回objects const xlsx = require('xlsx'); const fs = require('fs'); const path = require('path'); const downPath = path.resolve(__dirname, '../../fileUpload'); async function getExcelObjs (ctx) { const file = ctx.request.files.file; // 獲取上傳文件 const reader = fs.createReadStream(file.path); // 創(chuàng)建可讀流 const ext = file.name.split('.').pop(); // 獲取上傳文件擴展名 const filePath = `${downPath}/${Math.random().toString()}.${ext}`; const upStream = fs.createWriteStream(filePath); // 創(chuàng)建可寫流 const getRes = await getFile(reader, upStream); //等待數(shù)據存儲完成 const datas = []; //可能存在多個sheet的情況 if (!getRes) { //沒有問題 const workbook = xlsx.readFile(filePath); const sheetNames = workbook.SheetNames; // 返回 ['sheet1', ...] for (const sheetName of sheetNames) { const worksheet = workbook.Sheets[sheetName]; const data = xlsx.utils.sheet_to_json(worksheet); datas.push(data); } return { status: true, datas }; } else { return { status: false, msg: '上傳文件錯誤' }; } } function getFile (reader, upStream) { return new Promise(function (result) { let stream = reader.pipe(upStream); // 可讀流通過管道寫入可寫流 stream.on('finish', function (err) { result(err); }); }); } module.exports = { getExcelObjs };
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)成都網站設計公司行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)成都網站設計公司的支持。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、網站設計器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享名稱:使用koa怎么上傳excel文件并解析-創(chuàng)新互聯(lián)
文章地址:http://aaarwkj.com/article14/cdpdge.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網站制作、網站導航、定制開發(fā)、外貿建站、品牌網站設計
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容