egg 实现上传excel,并解析保存到数据库
2023-09-11 14:15:29 时间
1.安装 xlsx
yarn add xlsx --save-dev
2.创建工具类
app/controller/tools.js
'use strict'; const Controller = require('egg').Controller; const XLSX = require('xlsx'); class ToolsController extends Controller { async importExcel() { const { ctx } = this; // 获取额外参数 const { headerMap, type } = ctx.request.body; // 获取文件对象 const file = ctx.request.files[0]; try { // 每行数据要进行的特殊处理函数 const rowTransform = (row) => ({ ...row, // mobile: row.mobile.toString(), }); // 将文件解析成js数据,上边封装的可复用的解析函数 const importData = ctx.helper.getImportXLSXData(file, JSON.parse(headerMap), rowTransform); // 初步校验通过,导入数据库,返回结果 let result; if(type === 'forum'){ result = await ctx.service.diary.import(importData) } ctx.success({ data: result, message: '导入excel数据成功' }); } catch (error) { ctx.badRequest({ data: {}, message: '导入excel数据失败', }); } } } module.exports = ToolsController;
3.配置路由
// 上传excel文件 router.post('/tools/excel/import', jwt, controller.tools.importExcel);
4.页面调用
<Upload name="excel" // listType="text" accept=".xlsx" showUploadList={false} action={`${BaseUrl}/tools/excel/import`} headers={{ Authorization: `Bearer ${window.sessionStorage.getItem("x-user-token")}` }} data={{ headerMap: JSON.stringify({ '用户ID': 'user_id', '标题': 'title', '内容': 'content', }), type: 'forum' }} beforeUpload={beforeUpload} onChange={this.handleChange} > <Button type="primary" icon="upload" loading={loading} >{title}</Button> </Upload>
.
相关文章
- excel柱状图加折线图组合怎么做
- Excel 公式的使用、删除引用
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"@"
- 用EXCEL一列数据拼接SQL的where条件in语句
- Excel VBA Dir
- excel数据导入SQLite数据库
- [转]Excel导入异常Cannot get a text value from a numeric cell解决
- 【Excel】+随机数生成
- Excel Vlookup 列查找函数
- 《从Excel到R 数据分析进阶指南》一2.8 查看前10行数据
- 用postman导出excel文件
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
- Excel VLOOKUP实用教程之 05 vlookup如何从列表中获取最后一个值?(教程含数据excel)
- Excel VLOOKUP实用教程之 09 VLOOKUP 与多个条件一起使用?(教程含数据excel)
- Excel VLOOKUP实用教程之 07 vlookup如何解决肉眼看完全匹配,但是就是返回N/A错误(教程含数据excel)
- Excel VLOOKUP实用教程之 06 vlookup如何从使用通配符进行部分查找?(教程含数据excel)
- Excel VLOOKUP实用教程之 06 vlookup如何从使用通配符进行部分查找?(教程含数据excel)
- Excel 公式小技巧之公式中如何让某些变量不变,让某些变量限制行变或列表(教程含解决方案)
- Excel-vlookup(查找值,区域范围,列序号,0)如何固定住列序列号,这样即使区域范围变动也不受影响
- Excel-条件判断IFS()
- Java实现将Excel导入数据库和从数据库中导出为Excel
- PHP写的从数据库导入到EXCEL
- 小学生python游戏编程arcade----excel调用
- Excel到数据库的导入三部曲
- Python快速设置Excel表格边框
- Excel转PDF 将所有列放一行;纸张大小没有A2;打印sheet名称;显示表格
- Writing Images to the Excel Sheet using PHPExcel--转载
- Python Excel 对一整列重新赋值
- [Excel] 数据透视表