Java中导出数据库数据到Excel的函数
在Java开发过程中,有时需要将数据库中的数据导出为Excel格式,方便数据分析或者共享。本文将介绍如何使用Java实现数据导出到Excel的功能。
一、创建Excel文件
在Java中,我们可以使用Apache POI库来操作Excel文件。首先需要导入POI库的相关依赖。
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
</dependencies>
接着,我们可以新建一个Excel工作簿对象,并新建一个工作表,然后在工作表中写入表头。
Workbook workbook = new XSSFWorkbook();// 新建工作簿对象
Sheet sheet = workbook.createSheet();// 新建工作表
// 写入表头
Row row = sheet.createRow(0);
Cell cell0 = row.createCell(0);
cell0.setCellValue("ID");
Cell cell1 = row.createCell(1);
cell1.setCellValue("Name");
Cell cell2 = row.createCell(2);
cell2.setCellValue("Age");
二、获取数据库数据
我们使用JDBC连接数据库,获取数据库中的数据。这里以MySQL数据库为例。
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "123456");
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("select * from student");
三、将数据库数据写入Excel中
接下来,我们需要将查询的结果集中数据写入到Excel表格中。我们可以使用for循环来遍历ResultSet对象中的每一行,并在每一行中创建单元格,将ResultSet对象中的每一列的值写入到对应的单元格中。
int i = 1;// 从第2行开始写入数据
while (resultSet.next()) {
Row row = sheet.createRow(i++);
Cell cell0 = row.createCell(0);
cell0.setCellValue(resultSet.getInt("id"));
Cell cell1 = row.createCell(1);
cell1.setCellValue(resultSet.getString("name"));
Cell cell2 = row.createCell(2);
cell2.setCellValue(resultSet.getInt("age"));
}
四、保存Excel文件
最后,我们可以在指定路径下创建并保存Excel文件。
FileOutputStream fos = new FileOutputStream("D:\\output.xlsx");
workbook.write(fos);
fos.close();
完整代码:
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExportExcel {
public static void main(String[] args) throws Exception {
Workbook workbook = new XSSFWorkbook();// 新建工作簿对象
Sheet sheet = workbook.createSheet();// 新建工作表
// 写入表头
Row row = sheet.createRow(0);
Cell cell0 = row.createCell(0);
cell0.setCellValue("ID");
Cell cell1 = row.createCell(1);
cell1.setCellValue("Name");
Cell cell2 = row.createCell(2);
cell2.setCellValue("Age");
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "123456");
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("select * from student");
int i = 1;
while (resultSet.next()) {
Row row = sheet.createRow(i++);
Cell cellID = row.createCell(0);
cellID.setCellValue(resultSet.getInt("id"));
Cell cellName = row.createCell(1);
cellName.setCellValue(resultSet.getString("name"));
Cell cellAge = row.createCell(2);
cellAge.setCellValue(resultSet.getInt("age"));
}
FileOutputStream fos = new FileOutputStream("D:\\output.xlsx");
workbook.write(fos);
fos.close();
}
}
通过以上代码,我们可以将数据库中的数据导出到Excel文件中。从而方便数据的分享和分析。
