XLSX → 有道词典单词本 XML 转换
把 Excel 词库文件转换为有道词典「单词本」可导入的 XML(根节点 <wordbook>,每条一个 <item>,含 word / phonetic / trans / tags / progress 字段)。
何时使用
- 用户提供了 .xlsx/.xlsm 单词表,想导入有道词典单词本
- 用户要求"批量转换某个目录下的所有词库文件"
- 用户提到:词库转换、有道词典导入、单词本 XML、xlsx 转 youdao xml
调用方式
直接以子进程方式执行技能内置脚本(无需额外安装,openpyxl 已在托管 Python 环境中):
"C:/Users/Administrator/.workbuddy/binaries/python/envs/default/Scripts/python.exe" \
"C:/Users/Administrator/.workbuddy/skills/xlsx-to-youdao-wordbook/scripts/convert_xlsx_to_youdao.py" \
--target "待转换的.xlsx或目录" [--output 输出.xml] [其他选项]
若该托管 venv 不存在(换机器/环境时),先检查:
C:/Users/Administrator/.workbuddy/binaries/python/envs/default/Scripts/python.exe
不存在时改用任意 Python 3.8+,并确保已安装 openpyxl(pip install openpyxl)。
参数说明
| 参数 | 说明 |
|---|---|
--target, -t |
待转换的 .xlsx 文件 或 目录(目录则批量转换其中所有 .xlsx)。二选一必填 |
--input, -i |
同 --target,仅接受单个文件(旧参数,向后兼容) |
--output, -o |
输出 XML 路径。单文件且未指定时默认与源文件同目录、<原名>_youdao.xml |
--sheet, -s |
指定工作表名(默认第一个/活动表) |
--word-col |
手动指定单词列号(1 起),自动识别失败时使用 |
--trans-col |
手动指定释义列号(1 起) |
--uk-col / --us-col |
手动指定英音/美音列号(可选) |
--dedup |
去重方式:word(按单词,默认)或 word+trans(按单词+释义) |
输入与输出
- 输入:Excel 词库表。自动扫描前 10 行定位表头,按关键字(单词/word/英文/英语;释义/翻译/中文;英音/英式;美音/美式)自动匹配列;支持合并单元格取值、多 Sheet。
- 输出:UTF-8 编码的
wordbookXML,有道词典「我的 → 单词本 → 导入」可直接使用。 - 自动跳过:空行、单词为空、无拉丁字母的非英语内容、重复词条(跳过原因会打印统计)。
退出码与结果解读
0成功;1转换失败;2文件不存在/未指定目标;3表头/列识别失败;4编码异常。- 目录批量模式:单文件失败不影响其他文件,结尾打印汇总(成功/失败文件数、转换条数、跳过明细)。
执行要点
- Windows 中文路径:调用时设置
PYTHONUTF8=1环境变量,避免路径解码失败。 - 表头识别失败时报错会提示用
--word-col/--trans-col手动指定,此时应先读取表格结构再指定列号。 - 产物 XML 不需要再加工,直接交给用户即可。
- 完整格式规范见
references/youdao-xml-format.md。