若依框架导入Excle

1.在html 工具栏 toolbar div 层添加代码

<a class="btn btn-info" onclick="$.table.importExcel()">
	<i class="fa fa-upload"></i> 导入
</a>

效果如下:
在这里插入图片描述
2. 添加导入弹框提示区域代码

<script id="importTpl" type="text/template">
         <form enctype="multipart/form-data" class="mt40 mb20">
             <div class="col-xs-offset-1">
                 <input type="file" id="file" name="file"/>
                 <div class="mt10 pt5">
                     <input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的数据
                     &nbsp; <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i
                         class="fa fa-file-excel-o"></i> 下载模板</a>
                 </div>
                 <font color="red" class="pull-left mt10">
                     提示:仅允许导入“xls”或“xlsx”格式文件!
                 </font>
          </div>
    </form>
 </script>

效果如下:
在这里插入图片描述
3.添加导入url

 importUrl: prefix + "/importData",
 importTemplateUrl: prefix + "/importTemplate",

放置位置如下(下图放置的地方如下):
在这里插入图片描述
4.接下来就到Cotrollerler

    @GetMapping("/importTemplate")
    @ResponseBody
    public AjaxResult importTemplate(){
       ExcelUtil<DlCeshi> util = new ExcelUtil<>(DlCeshi.class);
       return util.importTemplateExcel("用户导入模板");
    }
@PostMapping ( "/importData" )
@ResponseBody
public AjaxResult importData(MultipartFile file,boolean updateDlCeshi) throws Exception {
    ExcelUtil<DlCeshi> util = new ExcelUtil<>(DlCeshi.class);
    List < DlCeshi > list = util.importExcel ( file.getInputStream ( ) );
    String message = dlCeshiService.importDlCeshi (list, updateDlCeshi );
    return AjaxResult.success(message);
}

5.上文中提到的importDlCeshi方法如下:

 @Override
    public String importDlCeshi(List<DlCeshi> list, boolean updateDlCeshi, String loginName) {
        //判断传入的Excel 是否为空
        if (StringUtils.isNull(list) || list.size() == 0)
        {
            throw new ServiceException("导入用户数据不能为空!");
        }
        //定义失败条数,接收导入失败数据量
        int failureNum = 0;
        StringBuilder successMsg = new StringBuilder ( );
        StringBuilder failureMsg = new StringBuilder ( );
        //遍历导入数据,并且插入数据库。
        for ( DlCeshi dlCeshi : list ) {
            this.insertDlCeshi(dlCeshi);
        }
        if ( failureNum > 0 ) {
            failureMsg.insert ( 0 , "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:" );
            throw new ServiceException ( failureMsg.toString ( ) );
        } else {
            successMsg.insert ( 0 , "数据已全部导入成功!共 " + list.size () + " 条,数据如下:" +"\n"+list.toString ());
        }
        return successMsg.toString ();
    }

完结:
导入效果如下:
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
若依框架提供了导入Excel的功能。在HTML页面中,可以使用以下代码实现导入功能: ```html <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:student:import"> <i class="fa fa-upload"></i> 导入 </a> ``` 同时,在后端的控制器中,可以使用以下代码实现导入Excel的功能: ```java @PreAuthorize("@ss.hasPermi('system:user:import')") @PostMapping("/import") public void importExcel(MultipartFile file) { // 解析Excel文件并处理数据 // ... } ``` 在导入Excel时,需要先有一个模板来确定要导入的数据内容。此外,还需要考虑是否需要对导入的数据进行重复性检查,以避免出现重复数据。在学生表中,可以通过姓名进行查询来判断是否重复。 #### 引用[.reference_title] - *1* *2* [若依框架 ------- 导入导出(Excel)](https://blog.csdn.net/m0_58719994/article/details/128876971)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [若依框架内自带的excel导入导出功能](https://blog.csdn.net/m0_50707445/article/details/128186026)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值