java若依框架ruoyi导入Excel(附详细代码)

这篇具有很好参考价值的文章主要介绍了java若依框架ruoyi导入Excel(附详细代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】
  • 【创作不易,点个赞就是对我最大的支持】

前言

仅作为学习笔记,供大家参考
总结的不错的话,记得点赞收藏关注哦!

Excel导入

可能出现的问题

1.开发模板下载功能(如需定制列,可以单独创建一个实体类,@Excel注解定义好名字)

2.导出后的列表如果有字典, @Excel(name = “建筑业资质等级”,dictType=“sys_qualifications_leave”)

后台代码

controller层

 /**
     * 导出合理性分析列表
     */
    @RequiresPermissions("business:hlxfx:export")
    @Log(title = "合理性分析", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    @ResponseBody
    public AjaxResult export(GcQyHlxfx gcQyHlxfx) throws ParseException {
        List<GcQyHlxfx> list = gcQyHlxfxService.selectGcQyHlxfxList(gcQyHlxfx);
        ExcelUtil<GcQyHlxfx> util = new ExcelUtil<GcQyHlxfx>(GcQyHlxfx.class);
        return util.exportExcel(list, "合理性分析数据");
    }
    //导入数据
    @Log(title = "合理分析", businessType = BusinessType.IMPORT)
    @PostMapping("/importData")
    @ResponseBody
    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
    {
        ExcelUtil<GcQyHlxfx> util = new ExcelUtil<GcQyHlxfx>(GcQyHlxfx.class);
        List<GcQyHlxfx> gcQyHlxfxList = util.importExcel(file.getInputStream());
        String message = gcQyHlxfxService.importHlxfx(gcQyHlxfxList, updateSupport, getLoginName());
        return AjaxResult.success(message);
    }
	//模板下载
    @GetMapping("/importTemplate")
    @ResponseBody
    public AjaxResult importTemplate()
    {
        ExcelUtil<GcQyHlxfxImport> util = new ExcelUtil<GcQyHlxfxImport>(GcQyHlxfxImport.class);
        return util.importTemplateExcel("合理分析");
    }

Service层

     public String importHlxfx(List<GcQyHlxfx> gcQyHlxfxList, Boolean isUpdateSupport, String operName) {
        if (StringUtils.isNull(gcQyHlxfxList) || gcQyHlxfxList.size() == 0)
        {
            throw new ServiceException("导入数据不能为空!");
        }
        int successNum = 0;
        int failureNum = 0;
        StringBuilder successMsg = new StringBuilder();
        StringBuilder failureMsg = new StringBuilder();
        for (GcQyHlxfx res : gcQyHlxfxList)
        {
            try
            {
                // 验证是否存在这个企业
                GcQyJbxx jbxx = gcQyJbxxMapper.selectGcQyJbxxByxydm(res.getSocialCode());
                if (!StringUtils.isNull(jbxx)){
                    LocalDate localDate=LocalDate.now();
                    res.setJzyzzdj(jbxx.getJZYZZDJ());
                    res.setQyszcq(jbxx.getQYSZCQ());
                    GcQyHlxfx sfgcQyHlxfx = new GcQyHlxfx();
                    sfgcQyHlxfx.setSocialCode(res.getSocialCode());
                    DecimalFormat df2 = new DecimalFormat("00");
                    String yMonth=localDate.getYear()+"-"+df2.format(localDate.getMonth().getValue());
                    sfgcQyHlxfx.setYearMonths(yMonth);
                    List<GcQyHlxfx> gcQyHlxfxes = gcQyHlxfxMapper.selectGcQyHlxfxList(sfgcQyHlxfx);
                    GcQyHlxfx gcQyHlxfx = new GcQyHlxfx();
                    String jzbnd = "0";//本平台累积产值
                    if (gcQyHlxfxes.size()>0){
                        gcQyHlxfx = gcQyHlxfxes.get(0);
                        jzbnd = gcQyHlxfx.getBndzcz();
                    }
                    Integer i = 0;
                    Integer c = 0;
                    double b = 0;
                    String bnd = res.getZhptJzcyzcz();//智慧平台本年度累积产值
                    if (bnd.contains(".")){
                        b = Double.parseDouble(bnd);
                        i = (int)b;
                    }else{
                        i = Integer.parseInt(bnd);
                    }
                    if (jzbnd.contains(".")){
                        b = Double.parseDouble(jzbnd);
                        c = (int)b;
                    }else{
                        c = Integer.parseInt(jzbnd);
                    }
                    //计算校核
                   Integer checks = c - i;
                    if (checks>0){
                        res.setDataMatch(1L);
                    }else if (checks==0){
                        res.setDataMatch(2L);
                    }else if (checks<0){
                        res.setDataMatch(3L);
                    }
                    res.setChecks(Long.parseLong(checks.toString()));

                        if (gcQyHlxfxes.size()>0){
                       BeanValidators.validateWithException(validator, res);
                       res.setId(gcQyHlxfx.getId());
                        res.setUpdateBy(operName);
                        //res.setYearMonths(yMonth);
                        res.setGxsj(new Date());
                        res.setGxr(ShiroUtils.getSysUser().getUserId().toString());
                        this.updateGcQyHlxfx(res);
                        successNum++;
                        successMsg.append("<br/>" + successNum + "、企业: " + res.getQymc() + " 更新成功");
                    }
                    else
                    {
                        failureNum++;
                        failureMsg.append("<br/>" + failureNum + "、企业: " + res.getQymc() +" 本月未上报");
                    }

                }else {
                    failureNum++;
                    failureMsg.append("<br/>" + failureNum + "、企业: " + res.getQymc() +" <font color='red'>系统内未查到该企业信息!</font>");
                }

            }
            catch (Exception e)
            {
                failureNum++;
                String msg = "<br/>" + failureNum + "、企业: " + res.getQymc() + " 导入失败:";
                failureMsg.append(msg + e.getMessage());
                log.error(msg, e);
            }
        }

        if (failureNum > 0)
        {
            failureMsg.insert(0, "共" + successNum + " 条数据导入成功, " + failureNum + " 条数据格式不正确,错误如下:");
            throw new ServiceException(failureMsg.toString());
        }
        else
        {
            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
        }
        return successMsg.toString();
    }
前端

js

                url: prefix + "/list",
                createUrl: prefix + "/add",
                updateUrl: prefix + "/edit/{id}",
                removeUrl: prefix + "/remove",
                exportUrl: prefix + "/export",
                importUrl: prefix + "/importData",
                importTemplateUrl: prefix + "/importTemplate",

  <!-- 导入区域 -->
     <script id="importTpl" type="text/template">
         <form enctype="multipart/form-data" class="mt20 mb10">
             <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>

html

    <div class="btn-group-sm" id="toolbar" role="group">

                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="business:hlxfx:export">
                    <i class="fa fa-download"></i> 导出
                </a>
                <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:hlxfx:export">
                    <i class="fa fa-upload"></i> 导入
                </a>
            </div>

创作不易,点个赞就是对我最大的支持~


wxgzh:程序员温眉

CSDN:程序员温眉

每天进步一点点的程序员文章来源地址https://www.toymoban.com/news/detail-819306.html

到了这里,关于java若依框架ruoyi导入Excel(附详细代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 使用hutool工具进行导出导入excel表格(代码很简单)

    创建一个Controller进行测试 

    2024年02月07日
    浏览(65)
  • 若依开源框架-微服务版本(ruoyi-Cloud)使用说明-超详细

    JDK 1.8 Mysql 5.7以上 Nacos 2.0.3 Node 14 版本以上 打开网站: RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|J

    2024年02月04日
    浏览(116)
  • [详细步骤]Java将Excel文件导入到数据库表中、并使用postman测试

    1、Maven依赖添加 2、需要使用的类 controller:ExcelController entity:ExcelEntity(设计此实体类,需要与excel文件一一对应) mapper:ExcelMapper service:ExcelServiceImpl、ExcelService util:ReadExcelUtil 3、代码 4、postman测试 file(excel)的文件路径需真实存在,下图进行设置路径、我的excel放在了

    2024年02月07日
    浏览(47)
  • 若依框架自定义导出Excel多sheet页+合并单元格(Poi)

    先看效果:     在用若依框架是发现自带的导出功能中并不能导出多个sheet和合并单元格,所以我在这里做了修改希望可以帮到你,用到的点个赞呗! 我们先一步步来 整个程序的思路为先返回下载地址,然后根据下载地址去下载excel 首先是我们需要excel的下载地址,这里我们

    2024年02月03日
    浏览(47)
  • Java:读取excel文件中的内容(简单、详细、明确、有全部代码)

    注意: jxl 仅支持读取 .xls 文件,读 .xlsx 会报错! 在 pom.xml 中引入 jxl 的依赖 支持读取 xlsx 文件的 poi 依赖说明、使用方法及更多详细内容可以参考: Java读取excel的方式,一篇文章看懂(详细)

    2024年02月12日
    浏览(48)
  • MySQL批量导入Excel数据【超详细】

    查看此文章前强烈建议先看这篇文章:Java江湖路 | 专栏目录 今天遇到一个需求,批量更新数据库中全国各地的物流价格,产品经理很贴心的为我做好了数据表格,说是上一个技术也是这么做的,好,压力给到我这边。话不多说,直接上步骤。 1、准备好我们需要导入的excel表

    2024年02月05日
    浏览(54)
  • java poi导入Excel、导出excel

    java poi导入Excel、导出excel ReadPatientExcelUtil PoiUtils FileUtils

    2024年02月15日
    浏览(43)
  • java导入excel图片处理

    直接看代码吧,主要逻辑吧excel的图片拿到 压缩上传获取url

    2024年02月12日
    浏览(41)
  • java批量导入Excel数据

    1.后台导入代码 2.实体类 2.1设置表格下拉选项  3.vue前端导入功能代码

    2024年02月09日
    浏览(40)
  • java读取Excel导入去除空行

    问题: 在Java读取Excel导入操作时, sheet.getLastRowNum()会统计带有格式的空白行,导致获取的最大行数不准确,数据导入失败。 解决: 在操作过程中删除存在样式的空白行 可通过将空白行(内容为空,但是存在样式)进行sheet.removeRow删除后 再调用getLastRowNum()进行行数统计,getAcc

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包