`
zysnba
  • 浏览: 191435 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

hutool导出

 
阅读更多
implementation 'cn.hutool:hutool-all:5.8.11'
    implementation 'org.apache.poi:poi:4.1.2'
    implementation 'org.apache.poi:poi-ooxml:4.1.2'
    implementation 'org.apache.poi:poi-ooxml-schemas:4.1.2'

/**
     * 导出
     *
     * @param response
     */
    @RequestMapping("/doExport")
    public void doExport(HttpServletRequest request, HttpServletResponse response) throws IOException {       //对应数据库操作
        List<xxxx> list = xxUsersService.list();

        //在内存操作,写到浏览器
        ExcelWriter writer = ExcelUtil.getWriter(true);

        //自定义标题别名(将对应的字段转化成自己需要的名称)
        writer.addHeaderAlias("orgCode", "组织编号");
        writer.addHeaderAlias("orgName", "组织名称");
        writer.addHeaderAlias("orgType", "组织类型");

        writer.addHeaderAlias("tips", "备注");        // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之
        writer.setOnlyAlias(true);
        //默认配置
        writer.write(list, true);
  setSizeColumn(writer.getSheet(),0);
         //设置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();
    }






    /**
     * 自适应宽度(中文支持)
     *
     * @param sheet
     * @param size 因为for循环从0开始,size值为 列数-1
     */
    public static void setSizeColumn(Sheet sheet, int size) {
        for (int columnNum = 0; columnNum <= size; columnNum++) {
            int columnWidth = sheet.getColumnWidth(columnNum) / 500;
            for (int rowNum = 0; rowNum <= sheet.getLastRowNum(); rowNum++) {
                Row currentRow;
                // 当前行未被使用过
                if (sheet.getRow(rowNum) == null) {
                    currentRow = sheet.createRow(rowNum);
                } else {
                    currentRow = sheet.getRow(rowNum);
                }

                if (currentRow.getCell(columnNum) != null) {
                    Cell currentCell = currentRow.getCell(columnNum);
                    if (currentCell.getCellTypeEnum().getCode() == 1) {
                        int length = currentCell.getStringCellValue().getBytes().length;
                        if (columnWidth < length) {
                            columnWidth = length;
                        }
                    }
                }
            }
            sheet.setColumnWidth(columnNum, columnWidth * 256);
        }
    }
  
分享到:
评论

相关推荐

    hutool文档pdf

    【Hutool工具包详解】 Hutool是一个全面的Java工具类库,旨在简化常见的开发任务,提升开发效率。它的设计思路是通过静态方法封装,使得开发者能够更加优雅地使用Java,如同使用函数式编程语言一样。Hutool的诞生...

    hutool、esayPoi、easyExcel、性能对比

    导出大文件的时候可能会有临时存储, 我的是在C:\Users\xbx\AppData\Local\Temp\poifiles 读csv文件 行数:1048575 hutool: 5205 esayPoi: 3929 easyExcel1: 1917 easyExcel2: 2832 读excel文件 行数:1048575...

    poi分多个sheet导出excel

    在处理大量数据时,如果需要将数据导出到Excel,可能会遇到单个工作表(sheet)无法容纳所有记录的情况。这时,我们可以使用Apache POI来创建包含多个sheet的Excel文件。标题“poi分多个sheet导出excel”所指的就是...

    hutool.zip

    《Hutool:Java开发中的全能工具库》 在Java编程世界中,高效、便捷的工具库对于开发者来说是至关重要的。Hutool就是这样一款深受开发者喜爱的工具库,它以其全面而强大的功能,极大地提升了开发效率。Hutool的名字...

    POI导出word工具类

    《使用Apache POI库导出Word文档》 在Java编程中,处理Microsoft Office文档时,Apache POI是一个不可或缺的库。POI项目提供了一系列API,允许开发者读取、写入和修改Microsoft Office格式的文件,包括Excel、Word...

    Excel导入导出工具类(包含样式)

    java实现Excel导入导出,附带一些简单的样式修改,添加,本来是没打算有偿分享的,可是没有0分的选项不知道是什么原因,估计缘于我是个新手

    从数据库生成Excel数据库表结构实例(使用hutool工具类)

    利用hutool工具从数据库生成Excel表结构实例, 生成的excel中,每个表一个sheet,表目录带有超链接。

    Struts2数据库数据导入导出

    运用struts2将数据库中的数据导入和导出,同时会用到poi的jar包

    Excel.java

    Hutool导出Excel表格Demo

    java实现CSV文件导入与导出功能

    Java 实现 CSV 文件导入与导出功能 Java 中实现 CSV 文件导入与导出的知识点主要包括以下几个方面: 一、CSV 文件简介 * CSV 文件是纯文本文件,可以用记事本打开,也可以用 Excel 打开。 * CSV 文件使用硬回车...

    实战csv文件的生成与读取

    在Python编程中,CSV(Comma-Separated Values)文件是一种常见的数据存储格式,用于存储表格数据。CSV文件因其简单易用和通用性而广泛应用于数据交换和数据分析。本实战项目涉及CSV文件的生成和读取,特别是针对...

    xlsx百万级模板数据导出

    easypoi和hutool对07版本的excel都没有提供模板导出,因此个人封装了下(原创)。 目前支持的模板表达式有 #if:表达式不成立则不输出#if #end中的行 #each 迭代map或实体bean所有的属性 #foreach 一次性导出xlsx #...

    Java工具包Hutool Wiki PDF版

    Java工具包Hutool是一个开源的Java工具类库,它集成了许多在日常开发中常用的功能模块,旨在简化Java开发的工作量,提高开发效率。Hutool的命名来源于对“Hu”(致敬前任公司)和“tool”(工具)的合成,同时谐音...

    海量千万级Excel导出源码-自动分sheet

    然而,当面对千万级甚至更大规模的数据时,传统的Excel导出方式会面临诸多挑战,如文件大小限制、性能瓶颈等。针对这一问题,"海量千万级Excel导出源码-自动分sheet"提供了一种解决方案。 首先,我们要理解为什么...

    shop-mall:SpringBoot(2.0.5)+MybatisPlus(3.0.7)项目骨架,支持SpringSecurity+JWT权限验证,整合Redis+MongoDB+RabbitMQ+Elasticseach,Quartz定时任务,EasyPoi的Excel导出,Swagger2接口文档,工具包LombokFastJsonHutoolJasypt

    支持SpringSecurity+JWT权限验证,整合Redis+MongoDB+RabbitMQ+Elasticseach,Quartz定时任务,EasyPoi的Excel导出,Swagger2接口文档,工具包Lombok/FastJson/Hutool/Jasypt  作者QQ: 作者邮箱:  具体分布式...

    poi_模板导出excel,支持百万级数据模板导出

    poi导入、导出,支持百万级数据模板导出、合并excel。项目为spring-boot-2上开发。resource里面有模板,在junit测试类中修改为本地存在路径即可导出文件,在junit测试类中修改for循环的i可以模拟百万级数据导出。注意...

    Hutool.rar

    Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是我项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛...

    word文档导出demo

    "word文档导出demo"这个项目显然聚焦于如何在编程环境中生成和操作Word文档,特别是涉及到动态创建表格和填充参数的功能。下面将详细讲解这个主题。 首先,我们需要了解的是如何在程序中与Word交互。这通常通过使用...

    多个excel导出压缩成zip 文件 数据量大导出

    在IT行业中,大数据量的处理是一项常见的挑战,尤其是在数据导出和存储方面。"多个Excel导出压缩成zip文件"的场景通常是为了解决数据量过大导致的文件管理不便、传输效率低以及存储空间占用过多等问题。下面我们将...

    根据word模板导出word、PDF文档

    根据word模板导出word、PDF文档,功能全,内容多,介绍详细。主要实现根据word模板及模板中的坐标($[标明.字段名])的形式进行查询出所对应的数据,然后分别生成PDF 和 WORD功能。 本功能是将各个模板的数据均查询...

Global site tag (gtag.js) - Google Analytics