
功能定位:为什么一定要自己导出?
在跨境电商、论文写作、会议同传等高频场景里,查询历史就是术语资产。官方云同步虽然方便,但无法直接批量下载,一旦账号异常或设备更换,上千条专业词条可能瞬间归零。把历史记录转成 Excel,既能本地冷备,也方便用 Power Query 做术语去重、用透视表统计高频词,甚至喂给内部知识库。
截至当前的最新版本(v11.6.0),客户端并未提供「一键导出」按钮,但底层 SQLite 数据库与 JSON 缓存均落盘在本地。只要找到文件、解析格式,就能在不破解、不篡改的前提下完成导出,且全程离线,合规无争议。
先决条件与风险告知
1. 版本与账号差异
Windows 版与 macOS 版数据库结构一致,但路径不同;免安装绿色版与 Microsoft Store 版因权限隔离,缓存目录多一层 WindowsApps 外壳,需额外获取读写权限。导出前请确认客户端已升级至最新正式版,避免旧版字段缺失导致列错位。
2. 只读原则
以下步骤全程只复制、不写入。若担心误操作,可先把整个目录打包为 zip 再做解析;任何第三方「修复工具」均可能破坏数据库校验,导致客户端重启后重建索引,历史记录反而清零。
Windows 端操作路径
Step 1 定位本地数据库
- 完全退出有道翻译(任务栏图标右键 → 退出)。
- 按 Win+R,输入
%AppData%\Youdao\Dict\Application Data\history回车。 - 找到 history.db(约数百 KB~数十 MB,取决于记录条数)。
提示:若目录不存在,大概率是 Microsoft Store 版。请在资源管理器地址栏输入
%LOCALAPPDATA%\Packages\Youdao.DictDesktop_*\LocalCache\Roaming\Youdao\Dict\Application Data\history
把通配符*替换成实际字符串即可。
Step 2 解析表结构
history.db 为 SQLite3 格式,主表 translate_history 核心字段如下:
| 字段 | 含义 | 示例 |
|---|---|---|
| query | 原文 | artificial general intelligence |
| result | 译文 | 通用人工智能 |
| lang_pair | 语言对 | en→zh-CHS |
| update_time | Unix 时间戳(毫秒) | 1716806123456 |
Step 3 导出为 CSV 再转 Excel
推荐用开源工具 DB Browser for SQLite(官网可下载,无需安装):
- 菜单「File → Open Database」选中 history.db。
- 切到「Execute SQL」页,执行:
SELECT query,result,lang_pair,datetime(update_time/1000,'unixepoch','localtime') AS local_time FROM translate_history ORDER BY update_time DESC; - 结果区域右键 → 「Export to CSV」。
- Excel 中「数据 → 自文本/CSV」导入,设置 UTF-8 编码,即可得到带时间戳的明细表。
macOS 端操作路径
macOS sandbox 机制把路径藏在 ~/Library/Containers/com.youdao.dict/Data/Library/Application Support/YoudaoDict/history/history.db。打开 Finder,按 ⌘+Shift+G 粘贴路径即可直达,其余步骤与 Windows 完全一致。
无人值守自动化脚本(可选)
若每周都要刷新术语表,可用 Python 脚本定时拉取。核心依赖仅 sqlite3 与 pandas,十行代码即可输出带格式的 .xlsx。示例片段如下:
import sqlite3, pandas as pd, time
db = r"history.db"
sql = """SELECT query,result,lang_pair,
datetime(update_time/1000,'unixepoch','localtime') as local_time
FROM translate_history ORDER BY update_time DESC"""
df = pd.read_sql(sql, sqlite3.connect(db))
df.to_excel(f"youdao_history_{int(time.time())}.xlsx", index=False)
把脚本放进系统任务计划或 cron,就能在后台自动生成带时间戳的 Excel,无需人工打开 GUI。
常见失败分支与回退方案
- 数据库被锁:客户端未完全退出,
history.db-wal仍处于写入状态。回退方案:任务管理器确认进程为零后再复制。 - 时间戳全空:旧版字段名曾用
time而非update_time,把 SQL 语句字段名改回即可兼容。 - CSV 中文乱码:Excel 导入时编码选「65001: UTF-8」;macOS Numbers 默认识别 UTF-8,无需额外设置。
什么时候不该用本方案?
1. 团队多人共用同一台电脑,数据库内混杂他人隐私词条,导出后需先做数据脱敏。
2. 企业环境启用了端点防护(EDR),对 SQLite 读取无感,但脚本定时任务可能被判定为异常进程,需提前报备白名单。
3. 若历史记录超过 20 万行,Excel 单表 104 万行上限虽够用,但透视表刷新会明显变慢,此时建议直接接入 Power BI 或数据库。
验证与观测方法
导出完成后,用 Excel「条件格式 → 重复值」快速检查同一原文是否出现多次,可验证数据完整性;再对 local_time 列做透视,按周统计查询量,若曲线与自身工作节奏吻合,说明抽取无误。经验性观察:绝大多数用户首次导出后会发现20% 以上重复查询,清理后可把术语库体积缩减一半。
FAQ(结构化数据)
导出后客户端会清空历史吗?
不会。本方案仅只读复制数据库,不影响原有索引与缓存。
手机端记录能一起导吗?
手机端历史保存在云端,需登录同一账号后在电脑端同步一次,才会写进本地 history.db,再按本文步骤导出即可。
数据库损坏如何自救?
先复制一份损坏文件,用「DB Browser → Tools → Repair」尝试恢复;若失败,把 history.db-corrupt 发给官方客服邮箱,通常 1–2 个工作日可返回修复后的库文件。
最佳实践清单(可打印)
- 每月第一周定时导出,文件名带年月,形成版本追溯。
- 导出后立即用 7-Zip 加密压缩,存入公司 NAS 私有空间,满足合规审计。
- 对重复 query 做去重后,另建「核心术语」工作表,作为团队翻译记忆库。
- 升级客户端前,先在测试机验证数据库字段是否变更,确认无误再全员推送。
- 若使用 Python 脚本,务必加
sqlite3.connect(uri, uri=True, check_same_thread=False)只读模式,防止占用锁。
收尾总结
「有道翻译电脑版查询历史导出为 Excel」并非官方显性能力,却能在三分钟内通过只读数据库方式落地:复制 → SQL → CSV → Excel,全程无需付费插件,也不触碰逆向风险。下次再遇到术语复盘、词频统计或合规归档,你就能在本地 5 秒完成刷新,而不是手动翻页复制。现在就打开资源管理器,按路径找到 history.db,执行一次导出,把沉睡的术语资产真正变成可检索、可分析、可复用的生产要素。
上一篇
没有更早的文章