Excel/截图字段智能导入工具,将 Excel 或截图(如 PDU 截图)中的字段按固定模板自动导入,生成标准化模板。支持中英文字段名映射、字段类型智能识别和 OCR 识别。适用于资产负债表、现金流量表、利润表、银行账号等财务报表批量导入。
Excel 导入模板智能生成器是一项面向实际任务的技能,主要用于将 Excel 数据源或截图中的字段,按照固定模板格式自动导入,生成标准化的导入模板;支持的数据源类型 :;
资产负债表;现金流量表;银行账号配置;任意自定义表单;方式一:处理 Excel 文件;用户提供:;模板文件路径;
数据源 Excel 文件路径;方式二:处理截。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
将 Excel 数据源或截图中的字段,按照固定模板格式自动导入,生成标准化的导入模板。
支持的数据源类型:
支持的报表类型:
用户提供:
用户提供:
系统自动完成:
from cnocr import CnOcr
ocr = CnOcr()
result = ocr.ocr('截图路径.png')
# 打印全部识别结果检查完整性
for i, item in enumerate(result, 1):
print(f'{i}. {item["text"].strip()}')
# 排除占位符
keywords_to_exclude = ['请输入', '年/月/日']
fields = []
for item in result:
text = item['text'].strip()
if text and not any(kw in text for kw in keywords_to_exclude):
fields.append(text)
# 预定义映射库
name_mapping = {
# 财务报表通用
'营业收入': 'operatingRevenue',
'营业成本': 'operatingCosts',
'净利润': 'netProfit',
'利润总额': 'totalProfit',
# 银行账号
'账号名称': 'accountName',
'银行名称': 'bankName',
'开户行': 'openingBank',
'银行账户': 'bankAccount',
# ... 更多见 scripts/field_mapping.py
}
# 自动映射,未知字段使用 field{N} 格式
eng_name = name_mapping.get(name, f'field{index+1}')
def detect_field_type(name):
amount_keywords = ['资金', '借款', '资产', '负债', '权益', '资本',
'账款', '票据', '投资', '应收', '应付', '利润',
'费用', '收益', '收入', '成本', '税额']
if any(kw in name for kw in amount_keywords):
return '金额'
if any(kw in name for kw in ['日期']):
return '日期时间'
if any(kw in name for kw in ['类型', '状态']):
return '单选'
return '单行文本'
import openpyxl
# 读取模板
tpl_wb = openpyxl.load_workbook('Excel导入模板.xlsx')
tpl_ws = tpl_wb.active
# ⚠️ 表名放在 B1,不是 A1!
tpl_ws['B1'] = '表中文名'
# 清除旧数据
for row in range(5, tpl_ws.max_row + 1):
for col in range(1, 6):
tpl_ws.cell(row=row, column=col).value = None
# 写入字段
for i, name in enumerate(fields):
row_num = i + 5
eng_name = name_mapping.get(name, f'field{i+1}')
field_type = detect_field_type(name)
tpl_ws.cell(row=row_num, column=1, value=name)
tpl_ws.cell(row=row_num, column=2, value=eng_name)
tpl_ws.cell(row=row_num, column=3, value=field_type)
tpl_ws.cell(row=row_num, column=4, value='否')
# 保存
tpl_wb.save('输出模板.xlsx')
行1: A1='表中文名' | B1=实际表名 行2: A2='表英文名' | B2=entityName 行3: A3='说明' 行4: 字段中文名 | 字段英文名 | 字段类型 | 是否必填 | 字段说明 行5+: 字段数据行
| 类型 | 识别关键词 | 说明 |
|---|---|---|
| 金额 | 资金、资产、负债、收入、成本、利润等 | 财务数值 |
| 日期时间 | 日期、时间 | 日期格式 |
| 单选 | 类型、状态 | 下拉选项 |
| 状态标签 | 状态 | 状态显示 |
| 单行文本 | 其他 | 普通文本 |
pip install openpyxl cnocr
首次运行会自动下载模型,后续会快很多。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习