如何用Java把查询出的内容导出到Excel表格?
如何用Java把查询出的内容导出到Excel表格
比如说我查询到了数据库的一些数据,想要把这些数据有组织的导出到一个excel文件里面,应该怎么实现?
回复
1个回答
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("输出成功!");
}
}
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容