如何用Java把查询出的内容导出到Excel表格?

作者站长头像
站长
· 阅读数 4

如何用Java把查询出的内容导出到Excel表格

比如说我查询到了数据库的一些数据,想要把这些数据有组织的导出到一个excel文件里面,应该怎么实现?

回复
1个回答
avatar
test
2024-06-23

先导入POI相关的第三方jar包

<!-- 使用apache poi需要的依赖  -->
 <dependency>
       <groupId>org.apache.poi</groupId>
       <artifactId>poi</artifactId>
       <version>4.0.1</version>
 </dependency>
 <dependency>
       <groupId>org.apache.poi</groupId>
       <artifactId>poi-ooxml</artifactId>
       <version>4.0.1</version>
 </dependency>
 <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-compress</artifactId>
    <version>1.19</version>
</dependency>
<!-- 使用druid连接池建立java程序与mysql数据库的连接需要的依赖  -->
<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.26</version>
</dependency>
<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid</artifactId>
     <version>1.0.9</version>
</dependency>

向Excel写入文件

package excelTest;

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 使用poi将数据写入excel文件中
 */
public class WriteExcelTest {
    public static void main(String[] args) {

        XSSFWorkbook xssfWorkbook = null;
        FileOutputStream out = null;
        try {
            //创建工作簿
            xssfWorkbook = new XSSFWorkbook();
            //创建表
            XSSFSheet xssfSheet = xssfWorkbook.createSheet("first_sheet");
            //创建行,这里创建四行
            XSSFRow row1 = xssfSheet.createRow(0);
            XSSFRow row2 = xssfSheet.createRow(1);
            XSSFRow row3 = xssfSheet.createRow(2);
            XSSFRow row4 = xssfSheet.createRow(3);
            //为第一行创建单元格并赋值
            row1.createCell(0).setCellValue("姓名");
            row1.createCell(1).setCellValue("年龄");
            row1.createCell(2).setCellValue("性别");
            //为第二行创建单元格并赋值
            row2.createCell(0).setCellValue("张三");
            row2.createCell(1).setCellValue("18");
            row2.createCell(2).setCellValue("男");
            //为第三行创建单元格并赋值
            row3.createCell(0).setCellValue("李四");
            row3.createCell(1).setCellValue("17");
            row3.createCell(2).setCellValue("男");
            //为第四行创建单元格并赋值
            row4.createCell(0).setCellValue("黄蓉");
            row4.createCell(1).setCellValue("20");
            row4.createCell(2).setCellValue("女");
            //创建一个输出流
            out = new FileOutputStream("D:/output.xlsx");
            //将创建的工作簿内容写入磁盘
            xssfWorkbook.write(out);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                //关闭资源,需做非空判断
                if (out != null) {
                    out.close();
                }
                if (xssfWorkbook != null) {
                    xssfWorkbook.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println("输出成功!");
    }
}
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容