把用户提供的出差补贴数据(图片或表格文件)转成一个单文件 HTML 工具,让行政人员可以逐一给员工复制私信内容。
| 来源 | 处理方式 |
|---|---|
| ------ | --------- |
| Excel / CSV 文件 | 用 Python + openpyxl 读取,直接提取,准确率高 |
| 图片 | 直接识别图片中的表格数据,逐行提取 |
Excel 优先于图片——如果用户同时提供了两种,用 Excel。
读取时按以下列顺序提取(以实际表头为准,灵活匹配):
| 字段 | 对应列 |
|---|---|
| ------ | -------- |
| 姓名 | 姓名列 |
| 部门 | 部门列 |
| 出差天数 | 实际打卡天数 / 出差天数 |
| 补贴标准 | 补贴标准 / 出差补贴/天 |
| 本月出差补贴 | 总数 / 合计列(非小计) |
| 出差地点 | 最后一列 |
特殊处理:
请确认出差补贴,如有问题随时告知我,
[姓名]
部门:[部门]
出差天数:[天数]天
补贴标准:[标准]
本月出差补贴:[金额]元
出差地点:[地点]
私信内容在 Python 阶段预先生成,存入数据,不在 JS 里拼接(避免转义问题)。
DATA 数组里| 问题 | 原因 & 解决 |
|---|---|
| ------ | ------------ |
| 卡片不显示 / 统计为 0 | JS 语法错误,通常是字符串里含单引号或反斜杠导致转义失败 → 私信内容在 Python 预生成,不在 JS 里拼接 |
| 中文乱码 | Python 输出没强制 UTF-8 → 用 io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') |
| 少了某人 | 合并逻辑只合并"同名",检查是否有姓名拼写差异 |
| 金额不对 | 优先取"总数"列而非"小计"列 |
共 1 个版本