• 从数据库中读取文件导出为Excel


    使用的库(org.apache.poi

    在poi包中有Apache提供的各种分类文件,如下

    结构功能
    HSSF读写Microsoft Excel XLS文件
    XSSF读写Microsoft Excel OOXML XLSX文件
    HWPF读写Microsoft Word DOC文件
    HSLF读写Microsoft PowerPoint文件

    下面以XSSF为例,该结构中有不同的类分别对应XLSX文件的不同结构:

    org.apache.poi.xssf.usermodel对应结构
    XSSFWorkbook工作簿
    XSSFSheet工作表
    XSSFROW表中的行
    XSSFCell行中的单元格

    创建表结构的流程:

    数据库中查询出List<实体类>的集合(查询数据,待处理)、创建工作薄对象、通过工作薄对象创建工作表对象、通过工作表对象创建工作行对象、通过工作行对象创建单元格对象、创建输出流、输出、刷新并关闭流资源、关闭工作薄资源。

    每个阶段所创建的对象都会有不同的方法,用来规定工作表的格式信息等。


    简单的创建过程演示:

    数据库数据结构:

    1. //利用利用Mapper(使用Mybatis-plus)从数据库中查处数据并封装到List中
    2. List lovers = loverService.getLovers();
    3. //创建工作薄对象
    4. XSSFWorkbook xwb = new XSSFWorkbook();
    5. //创建工作表对象,并规定工作表名称
    6. XSSFSheet sheet = xwb.createSheet("测试表");
    7. //这里可以利用sheet对象规定和并单元格等等信息
    8. //根据工作表对象创建工作行,下标指定第几行
    9. XSSFRow xssfRow = sheet.createRow(0);
    10. //给第一行创建单元格并添加列名
    11. xssfRow.createCell(0).setCellValue("序号");
    12. xssfRow.createCell(1).setCellValue("账号");
    13. xssfRow.createCell(2).setCellValue("密码");
    14. //创建第二行的对象
    15. XSSFRow xssfRow1 = sheet.createRow(1);
    16. //创建第二行的单元格对象,并填充内容,这里因为List中只有一个Lover对象,所以采用比较取巧的办法,没有用增强for循环
    17. xssfRow1.createCell(0).setCellValue(lovers.get(0).getId());
    18. xssfRow1.createCell(1).setCellValue(lovers.get(0).getName());
    19. xssfRow1.createCell(2).setCellValue(lovers.get(0).getPassword());
    20. //创建输出流,规定输出路径
    21. OutputStream ops = new FileOutputStream("/Users/chenpei/Downloads/sendMysqlTableDir/new/ExcelTestDir");
    22. //利用工作薄对象写出
    23. xwb.write(ops);
    24. //刷新流、关闭流、关闭工作薄
    25. ops.flush();
    26. ops.close();
    27. xwb.close();

    生成表结构:

  • 相关阅读:
    中国数据库崛起,阿里云李飞飞:中国云数据库多种主流技术创新已领先国外
    Flink SQL TopN语句详解
    Linux下的命令行参数和环境变量
    猿创征文|瑞吉外卖——移动端_地址管理
    9月25日,每日信息差
    C语言算术随笔
    Java如何使用反射创建动态代理(JDK原生)呢?
    93.(后端)分类参数增加接口实现——flask框架使用蓝图与restful发送请求添加数据
    SpringBoot项目创建失败或无法启动,启动报错时的常见问题及解决方案
    一文看懂推荐系统:排序11:Deep & Cross Network(DCN)
  • 原文地址:https://blog.csdn.net/m0_71774042/article/details/136182056