DBeaver导出XLSX需先安装org.jkiss.dbeaver.data.office插件,路径为Help→Install New Software;未安装则导出列表无XLSX选项,装完须重启,验证方式为执行SELECT 1后右键结果集查看导出格式。

直接右键结果集选“导出数据”,格式选 XLSX,点完成就能生成带格式的 Excel 文件——前提是 Office 导出插件已装好;没装的话,XLSX 选项根本不会出现在列表里。
导出前必须确认 Office 插件已安装
独立版 DBeaver 默认不带 Excel 支持,XLSX 导出由 org.jkiss.dbeaver.data.office 插件提供。不装它,右键菜单里只有 CSV、JSON 这些基础格式。
- 路径:菜单栏 Help → Install New Software,添加官方更新站点(如
https://dbeaver.io/update/latest/),勾选 “Office Data Export” 或类似名称的项 - 装完必须重启 DBeaver,否则插件不生效
- 验证方式:执行一条简单查询(比如
SELECT 1),右键结果集 → “导出数据”,看格式列表里有没有Excel XLSX - 如果列表里只有
Excel(无 XLSX 后缀),说明装的是旧版插件,建议升级到 24.3.0+ 版本
导出时关键参数就这几个,别乱调
向导里参数很多,但日常用不到大部分。真正影响输出效果的只有这几项,其余保持默认即可:
-
Header format:默认Label(字段名),需要同时显示字段名 + 字段注释时才改成Both -
nullString:默认为空,审计场景下建议设为[NULL]或NULL,避免空单元格被误认为缺失数据 -
dateFormat:默认MM/dd/yy,中文报表常用yyyy-MM-dd,改完后日期列在 Excel 里才是可计算的原生日期类型 -
splitByRowCount:默认1048575(Excel 单表最大行),除非你明确要拆成多个工作表,否则不要动 -
rownumber:关着就行;打开后第一列会加行号,适合逐行对账,但会多占一列、影响后续公式引用
大结果集导出卡顿或内存爆掉?先关掉预览
导出 10 万行以上时,如果进度条不动、DBeaver 响应变慢甚至假死,大概率是开了“实时预览”——它会把整张结果集加载进内存做渲染,和导出本身无关。
- 关闭路径:SQL 编辑器右上角齿轮图标 → Preferences → Editors → SQL Execution → Results Viewer → 取消勾选
Show results in data viewer - 底层用的是 Apache POI 的
SXSSFWorkbook,默认只缓存约 100 行在内存,其余写入磁盘临时文件;但预览一开,整个结果集就真进了内存 - 导出期间会占用磁盘 I/O,确保目标路径所在磁盘有足够空间(临时文件大小 ≈ 最终 XLSX 的 1.2–1.5 倍)
- 50 万行导出耗时通常在 30–90 秒之间,取决于磁盘速度和字段复杂度(含大量 TEXT 或 JSON 字段会明显拖慢)
导出后文件打不开或内容异常?先看这三点
生成了 .xlsx 文件但 Excel 打不开、提示“文件损坏”,或者打开后全是空行、数字变成 1.16E+18,问题往往不在导出逻辑本身:
- 查原始查询是否真有数据:
SELECT COUNT(*)确认行数;文件存在但打开为空,90% 是查询没返回结果 - 检查字段类型:二进制字段(
BLOB、BYTEA)不会转成可读文本,而是显示为[B@xxxxxx类占位符;需在 SQL 里用encode(data, 'base64')或TO_HEX()预处理 - 中文乱码不是编码问题:DBeaver XLSX 导出不走字符集转换,中文正常显示;如果乱码,大概率是用低版本 Excel(如 2003)强行打开 XLSX,换新版即可
真正容易被忽略的是:导出动作依赖的是“当前可见的结果集”,不是 SQL 语句本身。如果结果集被手动过滤、排序过,或者启用了分页且只看了第一页,导出的只是那部分数据——想导全部,得先在结果集工具栏点 Refresh 或确保查询没加 LIMIT。











