Jeecgboot 导入功能的配置

上传官网地址:https://www.antdv.com/components/upload-cn/

一、引入公共js:JeecgListMixin.js

 import { JeecgListMixin } from '@/mixins/JeecgListMixin'

二、js文件中的对应导入的方法:handleImportExcel

 /* 导入 */
    handleImportExcel(info){
      console.log(info)
      if (info.file.status !== 'uploading') {
        console.log(info.file, info.fileList);
      }
      if (info.file.status === 'done') {
        if (info.file.response.success) {
          // this.$message.success(`${info.file.name} 文件上传成功`);
          if (info.file.response.code === 201) {
            let { message, result: { msg, fileUrl, fileName } } = info.file.response
            let href = window._CONFIG['domianURL'] + fileUrl
            this.$warning({
              title: message,
              content: (<div>
                  <span>{msg}</span><br/>
                  <span>具体详情请 <a href={href} target="_blank" download={fileName}>点击下载</a> </span>
                </div>
              )
            })
          } else {
            this.$message.success(info.file.response.message || `${info.file.name} 文件上传成功`)
          }
          this.loadData()
        } else {
          this.$message.error(`${info.file.name} ${info.file.response.message}.`);
        }
      } else if (info.file.status === 'error') {
        if (info.file.response.status === 500) {
          let data = info.file.response
          const token = Vue.ls.get(ACCESS_TOKEN)
          if (token && data.message.includes("Token失效")) {
            Modal.error({
              title: '登录已过期',
              content: '很抱歉,登录已过期,请重新登录',
              okText: '重新登录',
              mask: false,
              onOk: () => {
                store.dispatch('Logout').then(() => {
                  Vue.ls.remove(ACCESS_TOKEN)
                  window.location.reload();
                })
              }
            })
          }
        } else {
          this.$message.error(`文件上传失败: ${info.file.msg} `);
        }
      }
    },

三、按钮点击事件

      <!-- 
      showUploadList:是否展示 uploadList
      multiple:是否支持多选
      headers:设置上传的请求头部
      importExcelUrl:上传地址
      handleImportExcel:上传文件改变时的状态
       -->
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
      </a-upload>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以按照以下步骤使用 JeecgBoot 导入 Excel 数据: 1. 创建一个实体类,用于映射 Excel 表格中的数据字段。确保实体类的属性与 Excel 表格的列名一致。 2. 在控制器类中编写一个方法,用于处理上传的 Excel 文件。你可以使用 Apache POI 或 EasyExcel 等库来读取 Excel 文件数据。 例如,使用 EasyExcel 库可以按照如下方式读取 Excel 文件数据: ```java @PostMapping("/import") public void importExcel(MultipartFile file) { try { EasyExcel.read(file.getInputStream(), YourEntityClass.class, new YourDataListener()) .sheet().doRead(); } catch (IOException e) { // 处理异常 } } ``` 3. 创建一个数据监听器类 `YourDataListener`,继承 `AnalysisEventListener` 并重写相关方法。在 `invoke()` 方法中处理每一行的数据。 ```java public class YourDataListener extends AnalysisEventListener<YourEntityClass> { private List<YourEntityClass> dataList = new ArrayList<>(); @Override public void invoke(YourEntityClass data, AnalysisContext context) { dataList.add(data); // 处理每一行的数据,可以在这里进行业务逻辑处理或保存到数据库 } @Override public void doAfterAllAnalysed(AnalysisContext context) { // 解析完成后的操作,如保存数据到数据库 } } ``` 4. 在前端页面中添加一个文件上传的表单,并将文件提交给上述控制器中的导入方法。 ```html <form action="/import" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> <input type="submit" value="导入" /> </form> ``` 这样,当你选择并提交一个 Excel 文件时,JeecgBoot 将会读取文件中的数据,并通过数据监听器进行处理。你可以在监听器中对每一行的数据进行相应的操作,比如保存到数据库中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值