項目地址github: https://github.com/daichangya/xlsql
1. 概述
本文檔詳細介紹瞭如何在 DBeaver 中配置和使用 Excel JDBC 驅動來連接和操作 Excel 文件。Excel JDBC 驅動允許用户像操作數據庫一樣查詢和修改 Excel 文件中的數據。
2. 準備工作
2.1 系統要求
- Java 8 或更高版本
- DBeaver 21.0 或更高版本
- Excel JDBC 驅動 JAR 文件
2.2 獲取 Excel JDBC 驅動
方式一:從 Maven Central 獲取(推薦)
XLSQL 5.1.1 已發佈到 Maven Central,可以直接通過 Maven 依賴使用:
<dependency>
<groupId>io.github.daichangya</groupId>
<artifactId>xlsql</artifactId>
<version>5.1.1</version>
</dependency>
方式二:手動下載 JAR 文件
從 Maven Central 下載:
- 標準 JAR: https://repo1.maven.org/maven2/io/github/daichangya/xlsql/5.1...
- Shaded JAR (包含所有依賴): https://repo1.maven.org/maven2/io/github/daichangya/xlsql/5.1...
3. 在 DBeaver 中配置 Excel JDBC 驅動
3.1 打開驅動管理器
- 啓動 DBeaver
- 點擊菜單欄 Database → Driver Manager
3.2 創建新驅動
- 點擊 New 按鈕創建新驅動
-
在 Settings 標籤頁中填寫以下信息:
- Driver Name: Excel JDBC Driver
- Class Name:
io.github.daichangya.xlsql.jdbc.xlDriver - URL Template:
jdbc:xlsql:excel:{path} - Port: (留空)
3.3 添加驅動文件
- 切換到 Libraries 標籤頁
- 點擊 Add File 按鈕
-
選擇你的 Excel JDBC 驅動 JAR 文件
- 路徑示例:
/path/to/xlsql-5.1.1.jar
- 路徑示例:
- 點擊 OK 保存驅動配置
4. 創建數據庫連接
4.1 新建連接
- 點擊 Database → New Database Connection
- 在連接類型列表中選擇 Generic → Generic JDBC
- 點擊 Next
4.2 配置連接參數
- Driver: 選擇之前創建的 "Excel JDBC Driver"
-
JDBC URL: 輸入 Excel 文件路徑
jdbc:xlsql:excel:/path示例:
jdbc:xlsql:excel:/Users/username/Documents
4.3 測試連接
- 點擊 Test Connection 按鈕
- 如果配置正確,會顯示 "Connected" 消息
- 點擊 Finish 完成連接創建
5. 使用 Excel JDBC 驅動
5.1 瀏覽數據結構
連接成功後,你可以在 DBeaver 的數據庫導航器中看到:
- Excel 文件作為數據庫顯示
- 每個工作表作為數據表顯示
- 表的列對應 Excel 中的第一行標題
5.2 執行 SQL 查詢
在 SQL 編輯器中可以執行標準 SQL 查詢:(使用下劃線格式,表名和字段名無需引號)
-- 查詢所有數據(使用下劃線格式,無需引號)
SELECT * FROM test1_Sheet1;
-- 條件查詢
SELECT * FROM test1_Sheet1 WHERE column1 = 'value';
-- 聚合查詢
SELECT COUNT(*) FROM test1_Sheet1;
-- 排序查詢
SELECT * FROM test1_Sheet1 ORDER BY column1;
6. Excel 文件要求
6.1 文件格式
- 支持
.xls`.xlsx` 格式
6.2 工作表結構
- 第一行為列標題
- 標題應使用有效的 SQL 標識符
- 避免使用特殊字符和空格
- 每列應保持數據類型一致
6.3 示例 Excel 結構
| Name | Age | City |
|---------|-----|-----------|
| John | 25 | New York |
| Jane | 30 | Los Angeles |
7. 常見問題和解決方案
7.1 連接失敗
問題: Cannot invoke "String.length()" because "<parameter1>" is null
解決方案:
- 檢查 JDBC URL 中的文件路徑是否正確
- 確保 Excel 文件存在且可訪問
7.2 驅動未找到
問題: Driver class not found
解決方案:
- 確認驅動 JAR 文件已正確添加到驅動配置中
- 檢查驅動類名是否正確:
io.github.daichangya.xlsql.jdbc.xlDriver
7.3 權限問題
問題: Permission denied 訪問 Excel 文件
解決方案:
- 檢查文件權限
- 確保 DBeaver 進程有讀寫文件的權限
7.4 中文字符亂碼
解決方案:
- 確保 Excel 文件使用 UTF-8 編碼
- 在連接參數中指定字符集
8. 高級配置
8.1 連接屬性
可以在連接配置中設置以下屬性:
charset: 指定字符集編碼readonly: 設置只讀模式
8.2 性能優化
- 對於大型 Excel 文件,建議使用過濾條件減少數據加載
- 避免在複雜公式的工作表上執行查詢
9. 限制和注意事項
9.1 功能限制
- 不支持複雜的數據類型(如圖片、圖表等)
- 不支持 Excel 公式計算
- 對大型文件的性能可能較差
- 併發訪問支持有限
9.2 數據類型映射
| Excel 類型 | SQL 類型 |
|---|---|
| 文本 | VARCHAR |
| 數字 | NUMERIC |
| 日期 | DATE |
| 布爾值 | BOOLEAN |
9.3 最佳實踐
- 定期備份重要的 Excel 文件
- 在執行寫操作前確認文件未被其他程序佔用
- 避免在生產環境中直接修改原始數據文件
- 使用副本文件進行測試操作
10. 故障排除
10.1 日誌查看
- 在 DBeaver 中打開 Window → Show View → Error Log
- 查看詳細錯誤信息
10.2 啓用調試模式
在啓動 DBeaver 時添加調試參數:
dbeaver -vmargs -Dorg.jkiss.dbeaver.debug=true
10.3 聯繫支持
如果遇到無法解決的問題,請提供:
- 完整的錯誤日誌
- 使用的 Excel 文件示例
- DBeaver 和驅動版本信息
11. 版本兼容性
| DBeaver 版本 | Excel JDBC 驅動版本 | 兼容性 |
|---|---|---|
| 21.x | 5.1.1 | ✓ |
| 22.x | 5.1.1 | ✓ |
12. 更新日誌
版本 5.1.1
- 初始版本
- 支持基本的 CRUD 操作
- 支持 .xls .xlsx 格式文件
- 與 DBeaver 集成
注意: 本文檔基於 Excel JDBC 驅動版本 5.1.1 編寫,具體功能可能因版本更新而有所變化。建議在使用前確認當前版本的功能特性。