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

这篇具有很好参考价值的文章主要介绍了Java 使用hutool工具进行导出导入excel表格(代码很简单)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.先引入hutool的相关依赖

 <!--hutool-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

2.导出 

创建一个Controller进行测试 

    @GetMapping(path = "/export")
    public void export(HttpServletResponse response,OrderPageRequest orderPageRequest)throws IOException { {
            // 查询导出订单数据
            List<OrdereExportView> ordereList = getOrdereList(orderPageRequest);
            if (CollectionUtils.isEmpty(ordereList)) {
                throw new BusinessException("暂无数据!");
            }
            //在内存操作,写到浏览器
            ExcelWriter writer = ExcelUtil.getWriter(true);

            //自定义标题别名
            writer.addHeaderAlias("orderCode", "订单编码");
            writer.addHeaderAlias("addressName", "送达方名称");
            writer.addHeaderAlias("amount", "订单金额");
            writer.addHeaderAlias("orderStatusDesc", "订单状态");
            writer.addHeaderAlias("createTime", "创建时间");
            writer.addHeaderAlias("submitTime", "提交时间");
            writer.addHeaderAlias("createTime", "创建时间");
    
            //只保留别名的数据
            writer.setOnlyAlias(true);
            // 默认配置
            writer.write(ordereList, true);
            // 设置单元格样式
            StyleSet style = writer.getStyleSet();
            CellStyle numberStyle = style.getCellStyleForNumber();
            DataFormat dataFormat = writer.getWorkbook().createDataFormat();
            // 保留3位小数
            numberStyle.setDataFormat(dataFormat.getFormat("0.000"));
            for (int i = 0; i < ordereList.size() + 1; i++) {
                writer.setStyle(numberStyle, 3, i);
            }

            // 设置content—type
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset:utf-8");

            // 设置标题
            String fileName = URLEncoder.encode("订单导出", "UTF-8");
            //Content-disposition是MIME协议的扩展,MIME协议指示MIME用户代理如何显示附加的文件。
            response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
            ServletOutputStream outputStream = response.getOutputStream();

            //将Writer刷新到OutPut
            writer.flush(outputStream, true);
            outputStream.close();
            writer.close();
      
    }

3.导出效果

hutool 导出excel,java,excel,开发语言

4.Excel 表格导入 实现

hutool 导出excel,java,excel,开发语言文章来源地址https://www.toymoban.com/news/detail-729816.html

    @PostMapping(path="/import")
    public List<OrderItemResponse> importData(@RequestParam("file") MultipartFile file) throws IOException {
        //字节输入流
        InputStream inputStream = file.getInputStream();
        //通过输入流创建ExcelReader 对象
        ExcelReader reader = ExcelUtil.getReader(inputStream);
        // 获取模板第一行第一列判断模板是否正确
        if (!"*客户物料号".equals(reader.getOrCreateRow(0).getCell(0).toString())) {
           throw new BusinessException("请按正确的模板导入!");
        }
        // 导入模板的列名要跟这个一致 不然字段是映射不上
        reader.addHeaderAlias("*客户物料号","customerSkuCode");
        reader.addHeaderAlias("*物料号","skuCode");
        reader.addHeaderAlias("*数量","quantity");
        reader.addHeaderAlias("*单位","unitDesc");

        List<OrderItemResponse> list = reader.readAll(OrderItemResponse.class);
        for (int i = 0; i < list.size(); i++) {
          OrderItemResponse item = list.get(i);
          // 设置模板行号 用于错误提示
          item .setImportNo(i+2);
          String msg = "";
          // 校验必填
          if (CollectionUtils.isNull(item.getSkuCode()){
               msg = "客户物料号不能为空;";
            }
          if (CollectionUtils.isNull(item.getUnitDesc())) {
               msg = msg + "数量单位不能为空;";
           }
          item.setErrorMsg(msg);
         }
        
        // 保存
        service.BatchAdd(list);
        // 把集合返回 用于前端展示成功行/失败行
        return list;
    }

到了这里,关于Java 使用hutool工具进行导出导入excel表格(代码很简单)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 使用EasyExcel实现Excel表格的导入导出

    Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。 easyexcel重

    2024年02月12日
    浏览(31)
  • hutool poi、apache poi实现导入导出以及解析excel

    一、前言 看了例子之后后续需要更加深入学习或者更多理解其他API的话,建议看官方文档。hutool项目是中国人维护的,有中文文档,阅读起来很方便。apache poi比较底层一点,可以更加自由去二次开发自己所需的功能。 hutool官方文档 hutool官方gitee apache poi官方文档 二、基于

    2024年02月09日
    浏览(40)
  • Excel 导入导出(前端处理:xslx)(后端处理:hutool+poi || Easy Excel )

      目录 Excel 导入导出(前端处理:xslx) 代码示例 导入Excel数据 将数据封装好后传给后端  导出数据 预览(vue-office/excel\\\"……;docx-preview) Excel 导入导出(后端处理:hutool+poi || Easy Excel ) 前端 后端使用Hutool处理Excel 文件 Hutool-poi是针对Apache POI的封装,因此需要用户自行引入

    2024年01月24日
    浏览(37)
  • EasyPio导入导出excel表格

    EasyPoi是一个功能强大且易于使用的Java Excel操作框架,其主要特点如下: 简单易用:EasyPoi提供简洁而直观的API,使Java开发人员能够轻松地进行Excel导入导出操作,无需繁琐的代码和复杂的配置。 支持多种数据源:EasyPoi支持从数据库、List集合、Map等各种数据源快速生成Excel文

    2024年02月12日
    浏览(41)
  • Hutool工具类实现的简易excel文件导出方法

    工作中遇到的小坑,记录一下 Hutool的官方文档有给出详细的excel文件导出工具类( ExcelWriter ),然而实际使用中,有些地方容易踩坑,记录一下方便对照。 首先是SpringBoot的后端,我用的是写出到客户端下载的方式,输入需要的年份year和月份month,HttpServletResponse也是必须的。

    2024年02月07日
    浏览(53)
  • C#读写导入导出Excel表格模板(NPOI)

    NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。 1、您可以完全免费使用该框架 2、包含了大部分EXCEL的特性(单元格样式、数据格式、公式等等) 3、专业的技

    2023年04月08日
    浏览(29)
  • [软件工具]AI软件离线表格识别工具使用教程图像转excel转表格可复制文字表格导出实时截图识别成表格

    【官方框架地址】 https://github.com/PaddlePaddle/PaddleOCR.git 【算法介绍】 PaddleOCR是一个基于PaddlePaddle框架的开源光学字符识别(OCR)工具库,由百度公司开发。它提供了一套完整的OCR解决方案,包括文字检测、文字识别以及版面分析等功能。PaddleOCR旨在帮助开发者和研究者快速构

    2024年01月18日
    浏览(39)
  • 【vue导入导出Excel】vue简单实现导出和导入复杂表头excel表格功能【纯前端版本和配合后端版本】

    前言 这是一个常用的功能,就是导入和导出excel表格 但是时常会遇到一些复杂表头的表格导出和导入 比如我这个案例里面的三层表头的表格。 网上看了下发现了一个非常简单导出和导入方法 当然这个是纯前端的版本,会出现分页不好下载的情况。所以实际工作中,导出还是

    2024年02月11日
    浏览(44)
  • java 使用hutool工具进行MD5加密

    引入依赖 MD5加密

    2024年02月16日
    浏览(29)
  • Java 使用esayExcel进行导出、导入包含多个sheet页面

    本文教程适合小白直接使用:先导出excel(含多个sheet),后导入,以上为导入依赖 以上就是导出excel含2个sheet页的基础代码,若是代码太多,建议处理:两个表都用 new ArrayList自定义实体类(),填充数据即可,导出导入亲测无问题。 esayExcel要读取多个sheet页提供了监视器,针对每

    2024年02月12日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包