博客 / 詳情

返回

使用Java將SQLite數據庫數據導出為Excel文件

在應用系統中,數據導出功能不可或缺。無論是生成報表、備份記錄還是交付給用户分析,導出為 Excel 是最常見的一種方式。本文將介紹如何使用 Java 將 SQLite 數據庫中的內容導出為 Excel 文件,自動生成表格並寫入數據。

所用技術框架

  • SQLite:作為數據來源的輕量數據庫
  • JDBC:用於查詢數據庫內容
  • Free Spire.XLS for Java:用於生成並保存 Excel 表格

操作步驟

  1. 連接 SQLite 數據庫,讀取所有數據表;
  2. 使用 SQL 查詢每個表的數據內容;
  3. 創建 Excel 工作簿和工作表,寫入字段名和查詢結果;
  4. 最後保存為 Excel 文件。

Java 示例:從 SQLite 導出數據到 Excel

import com.spire.xls.*;
import java.sql.*;

public class SQLiteToExcel {
    public static void main(String[] args) {
        String dbPath = "jdbc:sqlite:BusinessData.db";
        String outputExcel = "output/exported_data.xlsx";

        // Create an Excel workbook and clear the default worksheets
        Workbook workbook = new Workbook();
        workbook.getWorksheets().clear();

        try (Connection conn = DriverManager.getConnection(dbPath)) {
            DatabaseMetaData meta = conn.getMetaData();
            ResultSet tables = meta.getTables(null, null, "%", new String[]{"TABLE"});

            while (tables.next()) {
                String tableName = tables.getString("TABLE_NAME");
                Worksheet sheet = workbook.getWorksheets().add(tableName);

                // 查詢整張表
                String query = "SELECT * FROM `" + tableName + "`";
                try (Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(query)) {
                    ResultSetMetaData rsmd = rs.getMetaData();
                    int columnCount = rsmd.getColumnCount();

                    // 寫列名(表頭)
                    for (int i = 1; i <= columnCount; i++) {
                        sheet.getCellRange(1, i).setText(rsmd.getColumnName(i));
                    }

                    // 寫數據
                    int rowIndex = 2;
                    while (rs.next()) {
                        for (int i = 1; i <= columnCount; i++) {
                            String value = rs.getString(i);
                            sheet.getCellRange(rowIndex, i).setText(value != null ? value : "");
                        }
                        rowIndex++;
                    }
                }
            }

            // 移除默認空工作表(如果沒用)
            if (workbook.getWorksheets().get(0).getName().equalsIgnoreCase("Sheet1") &&
                    workbook.getWorksheets().getCount() > 1) {
                workbook.getWorksheets().removeAt(0);
            }

            // 保存 Excel 文件
            workbook.saveToFile(outputExcel, ExcelVersion.Version2016);
            System.out.println("Success!");

        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

示例數據庫數據:
Java導出數據庫到Excel文件數據庫示例

導出的Excel文件:
Java導出數據庫到Excel文件結果

小結

本文展示了將數據庫數據結構化導出為 Excel 的完整過程。配合 Java 自動化流程,可快速實現系統級數據導出功能,適用於生成報表、備份或跨平台共享數據的需求。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.