文件内容
field_mapping.py
# 目标模板 9 列 → 源文件可能的列名(按优先级排列)
FIELD_ALIASES = {
"日期": ["日期", "交易时间", "交易日期和时间", "交易日期时间", "入账日期", "交易日期", "交易日", "记账日期", "账务日期", "起息日期", "起息日"],
"收入": ["收入金额", "收入", "转入金额", "贷方发生额", "贷方发生额(元)", "收入(元)", "贷方金额", "汇入金额", "贷"],
"支出": ["支出金额", "支出", "转出金额", "借方发生额", "借方发生额(元)", "支出(元)", "借方金额", "汇出金额", "借"],
"余额": ["余额", "账户余额", "账户余额(元)"],
"摘要": ["摘要", "用途"],
"对方户名": [
"对方户名",
"对方单位",
"对方账户名称",
"对方账户户名",
"对方名称",
"对方客户名称",
"对方账号名称",
"交易对方户名",
"交易对方名称",
"交易对手户名",
"交易对手名称",
"交易对方",
"对手户名",
"对手名称",
"对手方",
"对手方名称",
"收(付)方名称",
"收付方名称",
],
"对方银行": [
"对方行名",
"对方银行",
"对方银行名称",
"对方开户行",
"对方开户行名",
"对方开户机构",
"对方开户机构名称",
"对方开户网点",
"对方账号开户行",
"对方账号开户机构",
"对方账号开户网点名称",
"对方账户开户行",
"对方账户开户机构",
"交易对方开户行",
"交易对方开户机构",
"交易对手开户行",
"交易对手开户机构",
"对手方银行",
"对手方银行名称",
"对手方开户行",
"对手方开户机构",
"收(付)方开户行名",
"收(付)方开户行",
"收(付)方开户机构",
"收(付)方分行名",
"收付方开户行名",
"收付方开户行",
"收付方开户机构",
"收付方分行名",
],
"对方账号": ["对方账号", "对方账户", "对方账户账号", "交易对方账号", "交易对手账号", "对手账号", "对手方账号", "对手方账户", "收(付)方账号", "收付方账号"],
"备注": ["备注", "附言", "客户附言"],
}
# 关键词用于检测表头行(只要某行包含这些关键词中的任意一个,就认为是表头行)
HEADER_KEYWORDS = ["交易时间", "交易日期", "入账日期", "交易日", "电子回单号码"]
# 源文件中"日期"列通常包含时间戳如 "2026-02-26 17:49:01",模板只要日期部分
DATE_COLS = ["日期"]
# 收入/支出列:空字符串或 None 表示该笔无收支
AMOUNT_COLS = ["收入", "支出"]
TEMPLATE_COLUMNS = list(FIELD_ALIASES.keys())