java写一个数据库导出excel代码
时间: 2023-12-21 15:03:43 浏览: 30
以下是一个使用Java JDBC连接数据库并将数据导出到Excel文件的示例代码:
```java
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExportDataToExcel {
public static void main(String[] args) {
try {
// 加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 连接数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
// 创建Statement对象
Statement stmt = conn.createStatement();
// 执行SQL语句
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
// 获取结果集的元数据
ResultSetMetaData metaData = rs.getMetaData();
// 创建工作簿和工作表
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Users");
// 创建表头行
Row headerRow = sheet.createRow(0);
// 创建表头单元格
for (int i = 1; i <= metaData.getColumnCount(); i++) {
Cell cell = headerRow.createCell(i - 1);
cell.setCellValue(metaData.getColumnName(i));
}
// 创建数据行
int rowNumber = 1;
while (rs.next()) {
Row row = sheet.createRow(rowNumber++);
// 创建数据单元格
for (int i = 1; i <= metaData.getColumnCount(); i++) {
Cell cell = row.createCell(i - 1);
cell.setCellValue(rs.getString(i));
}
}
// 输出Excel文件
FileOutputStream outputStream = new FileOutputStream("users.xlsx");
workbook.write(outputStream);
workbook.close();
outputStream.close();
// 关闭连接
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上述代码中,我们使用了Apache POI库来操作Excel文件。首先,我们加载MySQL JDBC驱动程序并连接到数据库,然后执行SQL语句获取结果集。接着,我们创建工作簿和工作表,并在表头行和数据行中创建单元格并填充数据。最后,我们将工作簿输出到Excel文件中,并关闭连接。