用途:当用户有一份主模板和一份名单,需要按每行生成一份填写副本时使用;也可从已填写的 .docx 反向提取可复用模板(extract_template)。不适用于生成单封定制信,或宿主环境要求使用其他文档管线;本轮不支持从 .xlsx 表单提取。
主要能力:read_content 分析模板,识别逐行变化部分与固定样板;tokenise 将精确短语替换为 {{Token}},docx 为 run 感知替换并保留原格式,覆盖正文、表格(含嵌套)、页眉页脚;xlsx 替换任意工作表单元格中的 token(openpyxl),保留其他内容、公式与格式;tokens_in 列出模板中的 token;load_rows 读取 .xlsx/.csv 数据,返回 (headers, rows);generate 每行生成一个文件并输出报告。
使用方式:先分析主模板,提出 token 映射给用户确认后再生成。token→列映射默认为 token 名等于列头(不区分大小写),不同时用 token_to_column 覆盖。可指定命名模式,如 Letter_{Recipient},默认 <template><row-number>。示例:extract_template("filled_letters.docx", "extracted");tokenise("Letter_master.docx", "Letter_tokenised.docx", [{"find": "Ms Jordan Lee", "token": "Name"}]);generate("Letter_tokenised.docx", rows, outdir="out", name_pattern="Letter{Recipient}")。
限制与安全:仅本地文件操作,无需网络与凭据;一次运行只用一份主模板,不混用两个模板;输出仅为待人工复核的草稿;找不到的值写成 «MISSING: Token» 并在报告中列出,绝不猜测或留空;find 文本必须精确匹配,先检查 not_found;需 Python 3.8+ 并执行 pip install python-docx openpyxl。