使用POI把查詢到的數據表數據導出到Excel中,一個表一個Sheet
在當今數據驅動的世界中,將數據導出到Excel中是一項常見的需求。無論是報告、數據分析還是數據共享,Excel都是一個強大的工具。Apache POI是一個流行的Java庫,專門用於操作Microsoft Office格式的文件,包括Excel。本文將介紹如何使用POI將查詢到的數據表數據導出到Excel中,並為每個數據表創建一個單獨的工作表(Sheet)。
Apache POI簡介
Apache POI是一個開源的Java庫,允許開發者讀取和寫入Microsoft Office格式的文件。它支持多種格式,包括Excel(.xls和.xlsx)、Word和PowerPoint。POI的靈活性和功能使其成為處理Excel文件的理想選擇。
環境設置
在開始之前,您需要確保您的開發環境中已經包含Apache POI庫。您可以通過Maven來添加依賴,以下是Maven的依賴配置:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
數據查詢
在導出數據之前,首先需要從數據庫中查詢數據。這裡以MySQL為例,使用JDBC來執行查詢:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class DatabaseQuery {
public static ResultSet getData(String query) throws Exception {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password");
Statement stmt = conn.createStatement();
return stmt.executeQuery(query);
}
}
導出數據到Excel
接下來,我們將使用Apache POI將查詢到的數據導出到Excel中。以下是導出數據的示例代碼:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
public class ExcelExporter {
public static void exportToExcel(ResultSet resultSet, String sheetName) throws Exception {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet(sheetName);
// 創建表頭
Row headerRow = sheet.createRow(0);
for (int i = 0; i < resultSet.getMetaData().getColumnCount(); i++) {
Cell cell = headerRow.createCell(i);
cell.setCellValue(resultSet.getMetaData().getColumnName(i + 1));
}
// 填充數據
int rowNum = 1;
while (resultSet.next()) {
Row row = sheet.createRow(rowNum++);
for (int i = 0; i < resultSet.getMetaData().getColumnCount(); i++) {
Cell cell = row.createCell(i);
cell.setCellValue(resultSet.getString(i + 1));
}
}
// 寫入文件
try (FileOutputStream fileOut = new FileOutputStream("output.xlsx")) {
workbook.write(fileOut);
}
workbook.close();
}
}
將多個數據表導出到不同的Sheet
如果需要將多個數據表導出到同一個Excel文件中的不同工作表,可以在主程序中調用多次導出方法,並為每個數據表指定不同的工作表名稱:
public class Main {
public static void main(String[] args) {
try {
String[] queries = {
"SELECT * FROM table1",
"SELECT * FROM table2"
};
String[] sheetNames = {"Table1", "Table2"};
for (int i = 0; i < queries.length; i++) {
ResultSet resultSet = DatabaseQuery.getData(queries[i]);
ExcelExporter.exportToExcel(resultSet, sheetNames[i]);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
總結
使用Apache POI將查詢到的數據表數據導出到Excel中是一個簡單而有效的過程。通過上述步驟,您可以輕鬆地將多個數據表導出到不同的工作表中,方便後續的數據分析和報告生成。對於需要處理大量數據的企業來說,這種方法不僅提高了工作效率,還能夠更好地管理和展示數據。
如果您正在尋找高效的數據處理解決方案,考慮使用香港VPS來運行您的應用程序,這將為您提供穩定的性能和靈活的資源配置。