若依框架的导入详解

Controller层

/**
     * 导入数据列表
     */
    @Log(title = "数据管理", businessType = BusinessType.IMPORT)
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
    {
        ExcelUtil<MisData> util = new ExcelUtil<MisData>(MisData.class);
        List<MisData> dataList = util.importExcel(file.getInputStream());
        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
        String operName = loginUser.getUsername();
        String message = misDataService.importData(dataList, updateSupport, operName);
        return AjaxResult.success(message);
    }

    /**
     * 导入数据模板
     */
    @GetMapping("/importTemplate")
    public AjaxResult importTemplate()
    {
        ExcelUtil<MisData> util = new ExcelUtil<MisData>(MisData.class);
        return util.importTemplateExcel("导入数据模板");
    }

Service层

/**
     * 导入数据
     *
     * @param dataList 数据列表
     * @param updateSupport 是否更新支持,如果已存在,则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    @Override
    public String importData(List<MisData> dataList, boolean updateSupport, String operName) {
        if(dataList==null||dataList.size()==0){
            throw new CustomException("导入数据不能为空!");
        }


        int successNum = 0;
        int failureNum = 0;
        StringBuilder successMsg = new StringBuilder();
        StringBuilder failureMsg = new StringBuilder();
        for (MisData data : dataList)
        {
            try
            {
                // 验证是否存在这个数据编号
                MisData m = misDataMapper.selectNoByNo(data.getNo());
                if (StringUtils.isNull(m))
                {
                    data.setCreateBy(operName);
                    this.insertMisData(data);
                    successNum++;
                    successMsg.append( successNum + "、数据编号 " + data.getNo() + " 导入成功");
                }
                else if (updateSupport)
                {
                    data.setUpdateBy(operName);
                    this.updateMisData(data);
                    successNum++;
                    successMsg.append( successNum + "、数据编号 " + data.getNo() + " 更新成功");
                }
                else
                {
                    failureNum++;
                    failureMsg.append( failureNum + "、数据编号 " + data.getNo() + " 已存在");
                }
            }
            catch (Exception e)
            {
                if(data==null){ throw new CustomException("数据编号为空!"); }
                failureNum++;
                String msg =  failureNum + "、数据编号 " + data.getNo() + " 导入失败:";
                failureMsg.append(msg + e.getMessage());
                log.error(msg, e);
            }
        }
        if (failureNum > 0)
        {
            failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
            throw new CustomException(failureMsg.toString());
        }
        else
        {
            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
        }
        return successMsg.toString();
    }

剩下的Mapper层加上方法就行
最后导入成功!!!!!

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
你可以使用Element Plus的Upload组件来实现导入Excel文件的功能。下面是一个使用Vue 3和Element Plus导入Excel文件的示例: 首先,确保你已经安装了Vue 3和Element Plus。可以通过以下命令来安装它们: ``` npm install vue@next element-plus ``` 接下来,在你的Vue组件中引入所需的模块: ```javascript import { defineComponent, ref } from 'vue' import { ElUpload, ElButton } from 'element-plus' ``` 然后,在模板中使用Upload组件和Button组件: ```html <template> <div> <el-upload ref="upload" :auto-upload="false" :on-change="handleFileChange" :before-upload="beforeUpload" > <el-button slot="trigger" size="small" type="primary">选择文件</el-button> <el-button style="margin-left: 10px;" size="small" type="success" @click="upload">上传</el-button> </el-upload> </div> </template> ``` 在script部分,定义一个ref用于获取上传文件的实例,并编写相应的事件处理函数: ```javascript export default defineComponent({ setup() { const uploadRef = ref(null) const handleFileChange = (file) => { // 处理文件变化事件 console.log(file) } const beforeUpload = (file) => { // 验证文件格式等 console.log(file) return true } const upload = () => { // 执行上传操作 uploadRef.value.submit() } return { uploadRef, handleFileChange, beforeUpload, upload } } }) ``` 这样,你就可以使用Element Plus的Upload组件来导入Excel文件了。当用户选择文件后,`handleFileChange`函数会被触发,你可以在这里处理文件数据。在点击上传按钮时,通过调用`uploadRef.value.submit()`方法来执行上传操作。 请注意,你可能需要根据自己的需求进行一些额外的配置和处理。这只是一个简单的示例,你可以根据实际情况进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值