导出时表头不显示需勾选“字段名作标题”;CSV乱码应选UTF-8 with BOM编码;XLSX大数据量会自动分Sheet且每Sheet含表头,CSV无此问题。

导出时表头不显示?检查“字段名作标题”是否勾选
默认情况下,DBeaver 导出 Excel 或 CSV 时不会自动把列名(即字段名)写成第一行表头。最常见现象是:打开导出的文件,看到的全是数据,但不知道哪一列对应什么字段。
解决方法很简单:在导出向导的「格式」或「选项」页中,必须勾选 字段名作标题(英文界面为 Use column labels as headers)。这个选项控制是否将查询结果的列别名或原始字段名写入首行。
- 对 XLSX 导出:勾选后,表头会自动冻结首行(Excel 冻结窗格功能生效)
- 对 CSV 导出:勾选后,第一行就是逗号分隔的列名,如
id,name,created_at - 如果 SQL 中用了
AS别名(如SELECT user_id AS id),导出的表头会显示id,不是原始字段名
导出 CSV 表头乱码或错位?重点调编码和分隔符
中文列名导出到 CSV 后变成问号、方块,或者所有内容挤在 A1 单元格里——这基本不是 DBeaver 的 bug,而是导出配置没对上 Excel 的解析习惯。
关键三步:
- 导出时手动指定编码为
UTF-8 with BOM(不是普通 UTF-8):Excel Windows 版本靠 BOM 识别 UTF-8,否则默认用系统编码(如 GBK)读取,导致乱码 - 分隔符选
逗号时,确保数据里没有未转义的逗号;如有,必须启用引用符(默认双引号"),DBeaver 会自动包裹含逗号/换行的字段 - 如果目标系统是欧洲环境或 Excel 设置为分号分隔,改用
分号作分隔符,并同步勾选使用引用符
想导出带注释的列名?得从“打开声明”里复制再拼接
DBeaver 不支持直接把 Oracle/PostgreSQL 的列注释(COMMENT ON COLUMN)导出为 Excel 表头。它导出的始终是字段名或 AS 别名,不是注释文本。
临时 workaround:
- 右键表 →
打开声明→ 切换到列标签页,能看到每列的注释内容 - 手动复制注释,粘贴到 Excel 表头下方第二行(或另存为模板)
- 更稳妥的做法:用 SQL 查注释元数据,拼出带注释的导出语句,例如 PostgreSQL:
SELECT column_name AS "字段名", col_description(a.attrelid,a.attnum) AS "中文注释" FROM pg_attribute a JOIN pg_class c ON a.attrelid = c.oid WHERE c.relname = 'your_table' AND a.attnum > 0;
然后导出这个结果,再把两列人工合并成表头。
大数据量导出时表头重复出现?那是启用了工作表拆分
导出 50 万行以上数据到 XLSX 时,如果发现每张工作表(Sheet)开头都有一行表头,不是 bug,是 DBeaver 的流式导出策略:它用 SXSSFWorkbook 自动按行数切分工作表(默认每 100 万行一个 Sheet),且每个 Sheet 都独立写入表头。
目前没有开关能关掉后续 Sheet 的表头。如果你必须单 Sheet + 单表头:
- 导出前在 SQL 里加
LIMIT控制总行数(比如LIMIT 999999) - 改用 CSV 导出(无 Sheet 拆分逻辑),再用 Excel 手动打开
- 确认你的内存足够:在 DBeaver 首选项 → 编辑器 → 数据编辑器 → 增大
最大结果集大小,避免因内存限制触发强制分片
真正容易被忽略的是:这个行为只发生在 XLSX 格式,CSV 和 SQL 导出完全不受影响。别在 CSV 导出里找“禁用多表头”选项——它根本不存在。

















