import pandas as pd from openpyxl import load_workbook from openpyxl.styles import PatternFill from openpyxl.formatting.rule import ColorScaleRule # ================= 创建测试数据 ================= project_data = { "项目编号": ["P001", "P002"], "项目名称": ["CRM系统升级", "电商平台开发"], "项目类型": ["升级", "新开发"], "起止时间": ["2025-03-01 ~ 2025-06-30", "2025-04-01 ~ 2025-12-31"], "当前阶段": ["开发中", "需求确认"], "交付状态": ["未交付", "部分交付"] } progress_data = { "项目编号": ["P001", "P002"], "整体进度(%)": [45, 20], "剩余人天": [120, 300], "当前人数": [8, 5], "资源缺口": [2, 3] } maintenance_data = { "产品名称": ["CRM系统", "订单管理模块"], "维护类型": ["付费维护", "质保期维护"], "工单量": [15, 8], "平均耗时(h)": [3.5, 2.0] } product_data = { "产品名称": ["CRM标准版", "ERP基础版"], "定价(万元)": [12.8, 28.5], "近半年销量": [35, 18] } # ================= 生成Excel文件 ================= with pd.ExcelWriter("部门项目总览.xlsx", engine="openpyxl") as writer: # 生成四个工作表 pd.DataFrame(project_data).to_excel(writer, sheet_name="项目概况", index=False) pd.DataFrame(progress_data).to_excel(writer, sheet_name="进度管理", index=False) pd.DataFrame(maintenance_data).to_excel(writer, sheet_name="维护工作", index=False) pd.DataFrame(product_data).to_excel(writer, sheet_name="产品信息", index=False) # 获取工作簿对象进行格式设置 workbook = writer.book # 设置公共格式 for sheetname in writer.sheets: sheet = writer.sheets[sheetname] # 冻结首行 sheet.freeze_panes = "A2" # 设置列宽 sheet.column_dimensions['A'].width = 15 sheet.column_dimensions['B'].width = 25 # 为进度表添加条件格式 progress_sheet = writer.sheets["进度管理"] progress_rule = ColorScaleRule(start_type='num', start_value=0, start_color='FF0000', mid_type='num', mid_value=50, mid_color='FFFF00', end_type='num', end_value=100, end_color='00FF00') progress_sheet.conditional_formatting.add("B2:B100", progress_rule) # ================= 最终文件生成 ================= print("文件已生成:部门项目总览.xlsx")