feat: 添加字段自定义报表名头功能

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
This commit is contained in:
user9994793890
2026-07-13 11:27:11 +08:00
parent 81945f467a
commit d7a3e3fa9a
3 changed files with 58 additions and 13 deletions

View File

@@ -416,7 +416,8 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
split_name=config.get('split_name', config['split_value']),
start_time=start_time_str,
end_time=end_time_str,
id_name_maps=id_name_maps
id_name_maps=id_name_maps,
field_custom_names=config.get('field_custom_names')
)
print(f"[日报生成] Excel文件已生成: {file_path}")
@@ -491,12 +492,13 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
def generate_excel(orders, selected_fields, sum_fields, sum_results,
config_name, split_name, start_time, end_time,
id_name_maps=None):
id_name_maps=None, field_custom_names=None):
"""
生成Excel文件
Args:
id_name_maps: ID到名称的映射字典格式为 {field_name: {id_value: name_value}}
field_custom_names: 字段自定义名头字典,格式为 {field_key: custom_name}
Returns:
str: 文件路径
@@ -532,10 +534,14 @@ def generate_excel(orders, selected_fields, sum_fields, sum_results,
# 写入表头(中文)
header_row = 4
field_custom_names = field_custom_names or {}
for col_idx, field in enumerate(selected_fields, 1):
cell = ws.cell(row=header_row, column=col_idx)
# 优先使用自定义名头
if field in field_custom_names and field_custom_names[field]:
display_name = field_custom_names[field]
# 如果是ID字段且有名称映射表头显示为名称而不是ID
if field in id_name_maps and id_name_maps[field]:
elif field in id_name_maps and id_name_maps[field]:
# 将"用户ID"改为"用户""企业ID"改为"企业"等
display_name = get_field_display_name(field).replace('ID', '')
else: