Apache POI 把数据库数据生成文件的方法是?
时间: 2024-02-25 18:56:25 浏览: 158
Apache POI提供了许多类和方法用于将数据库数据生成文件。以下是一些基本步骤:
1. 创建工作簿(Workbook)对象。根据文件格式的不同,可以创建HSSFWorkbook、XSSFWorkbook、SXSSFWorkbook等不同类型的工作簿。
2. 创建工作表(Sheet)对象。可以使用工作簿对象的createSheet()方法创建一个新的工作表。
3. 创建行(Row)对象。可以使用工作表对象的createRow()方法创建一个新的行。
4. 创建单元格(Cell)对象。可以使用行对象的createCell()方法创建一个新的单元格。
5. 从数据库中读取数据,并将数据填充到单元格中。可以使用JDBC API执行数据库查询,然后将查询结果填充到单元格对象中。
6. 保存工作簿。可以使用工作簿对象的write()方法将数据写入到文件中。
下面是一个简单的示例代码,用于将MySQL数据库中的数据导出为Excel文件:
```java
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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;
public class DatabaseToExcel {
public static void main(String[] args) throws Exception {
// 创建工作簿对象
Workbook workbook = new HSSFWorkbook();
// 创建工作表对象
Sheet sheet = workbook.createSheet("Sheet1");
// 连接数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM mytable");
// 读取数据并填充到单元格中
int rownum = 0;
while (rs.next()) {
// 创建新行
Row row = sheet.createRow(rownum++);
// 填充单元格
Cell cell1 = row.createCell(0);
cell1.setCellValue(rs.getString("column1"));
Cell cell2 = row.createCell(1);
cell2.setCellValue(rs.getString("column2"));
Cell cell3 = row.createCell(2);
cell3.setCellValue(rs.getString("column3"));
}
// 关闭数据库连接
rs.close();
stmt.close();
conn.close();
// 保存工作簿
FileOutputStream out = new FileOutputStream("output.xls");
workbook.write(out);
out.close();
workbook.close();
}
}
```
在这个示例代码中,我们首先创建了一个HSSFWorkbook对象,然后创建了一个名为"Sheet1"的工作表。接下来,我们使用JDBC API连接到MySQL数据库并执行查询。在循环中,我们创建了新的行对象,并使用ResultSet中的数据填充了单元格对象。最后,我们将工作簿写入文件并关闭对象。
阅读全文