从数据库中读取文件导出为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<实体类>的集合(查询数据,待处理)、创建工作薄对象、通过工作薄对象创建工作表对象、通过工作表对象创建工作行对象、通过工作行对象创建单元格对象、创建输出流、输出、刷新并关闭流资源、关闭工作薄资源。

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


简单的创建过程演示:

数据库数据结构:

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

生成表结构:

相关推荐

  1. Excel VBA ——MySQL数据库导出一个报表-笔记

    2024-02-21 06:48:03       64 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-21 06:48:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-21 06:48:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-21 06:48:03       82 阅读
  4. Python语言-面向对象

    2024-02-21 06:48:03       91 阅读

热门阅读

  1. 使用单元测试框架Junit的正确姿势

    2024-02-21 06:48:03       44 阅读
  2. SQL-2

    SQL-2

    2024-02-21 06:48:03      51 阅读
  3. 电商数据API接口

    2024-02-21 06:48:03       57 阅读
  4. 士兰微六轴陀螺仪SC7I22在AR/VR头显设备中的应用

    2024-02-21 06:48:03       45 阅读
  5. jupyter/scipy-notebook:python3.8 docker 镜像

    2024-02-21 06:48:03       51 阅读
  6. 云计算计算资源池与存储池访问逻辑

    2024-02-21 06:48:03       52 阅读
  7. pytorch和tensorflow比较以及安装使用tensorflow

    2024-02-21 06:48:03       52 阅读
  8. axios封装终极版实现token无感刷新及全局loading

    2024-02-21 06:48:03       40 阅读
  9. 深度学习之pytorch 中 torch.nn介绍

    2024-02-21 06:48:03       42 阅读
  10. [云原生] 初识Kubernetes

    2024-02-21 06:48:03       44 阅读
  11. golang 如何防止内存逃逸

    2024-02-21 06:48:03       52 阅读
  12. spark为什么比mapreduce快?

    2024-02-21 06:48:03       49 阅读