import openpyxl from openpyxl import Workbook def create_input_excel(filename="input_params.xlsx"): wb = Workbook() ws = wb.active ws.title = "输入接口" headers = ["文件名/数据流", "格式", "字段 (Field)", "类型 (Type)", "描述 (Description)"] ws.append(headers) data = [ ["virus_params.json", "JSON", "strain_name", "String", "病毒变种标识符,如\"Delta\", \"Omicron BA.5\""], ["", "", "r0", "Float", "基本再生数,描述病毒内在传播力"], ["", "", "latent_period", "Float", "平均潜伏期时长(天)"], ["", "", "generation_interval", "Float", "平均世代间隔(天)"], ["", "", "asymptomatic_rate", "Float", "无症状感染比例(0-1之间)"], ["", "", "symptomatic_rate", "Float", "出现临床症状的比例(0-1之间)"], ["", "", "severe_rate", "Float", "确诊者中发展为重症的比例(0-1之间)"], ["", "", "fatality_rate", "Float", "感染致死率(IFR,0-1之间)"], ["", "", "env_survival", "Float", "病毒在标准环境下的存活时间(小时)"], ["environment_params.json", "JSON", "target_population", "Integer", "目标区域总人口数"], ["", "", "pop_density", "Float", "目标区域平均人口密度(人/平方公里)"], ["", "", "avg_temperature", "Float", "攻击期间预测平均温度(摄氏度)"], ["", "", "avg_humidity", "Float", "攻击期间预测平均相对湿度(百分比)"], ["", "", "terrain_type", "String", "主要地形类型,如\"Urban\", \"Suburban\", \"Rural\""], ["operation_plan.json", "JSON", "planned_start_time", "String (ISO 8601)", "计划中的攻击发起时间(YYYY-MM-DDThh:mm:ssZ)"], ["", "", "actual_start_time", "String (ISO 8601)", "实际攻击发起时间(YYYY-MM-DDThh:mm:ssZ)"], ["", "", "expected_casualties", "Integer", "期望达成的感染人数目标"], ["", "", "expected_fatalities", "Integer", "期望达成的死亡人数目标"], ["defense_capability.json", "JSON", "cc_response_delay", "Float", "指挥控制响应延迟(小时)"], ["", "", "si_detection_delay", "Float", "侦察预警-病例发现延迟(小时)"], ["", "", "si_testing_capacity", "Integer", "侦察预警-日最大核酸检测能力"], ["", "", "pp_public_compliance", "Float", "预防保护-公众防护措施依从率(0-1之间)"], ["", "", "pp_vaccination_rate", "Float", "预防保护-疫苗全程接种率(0-1之间)"], ["", "", "qi_isolation_delay", "Float", "封控隔离-感染者隔离延迟(小时)"], ["", "", "qi_quarantine_capacity", "Integer", "封控隔离-可用隔离床位总数"], ["", "", "mt_hospital_beds", "Integer", "救治后送-医院总床位数"], ["", "", "mt_icu_beds", "Integer", "救治后送-ICU总床位数"], ["", "", "rs_drug_dev_cycle", "Float", "应急科研-特效药研发周期(月)"] ] for row in data: ws.append(row) wb.save(filename) print(f"{filename} 已生成") def create_output_excel(filename="output_params.xlsx"): wb = Workbook() ws = wb.active ws.title = "输出接口" headers = ["文件名/数据流", "格式", "字段 (Field)", "类型 (Type)", "描述 (Description)"] ws.append(headers) data = [ ["assessment_report.json", "JSON", "estimated_casualties", "Integer", "模型估算的总感染人数"], ["", "", "estimated_fatalities", "Integer", "模型估算的总死亡人数"], ["", "", "casualty_goal_achieved", "Boolean", "总感染人数目标是否达成"], ["", "", "fatality_goal_achieved", "Boolean", "总死亡人数目标是否达成"], ["", "", "casualty_achievement_rate", "Float", "感染目标达成率(estimated/expected)"], ["", "", "fatality_achievement_rate", "Float", "死亡目标达成率(estimated/expected)"], ["", "", "peak_medical_demand", "Integer", "估算的峰值医疗需求(住院人数)"], ["", "", "medical_system_overwhelmed", "Boolean", "是否发生医疗资源挤兑"], ["", "", "key_vulnerability", "Array of String", "识别出的b方关键脆弱性(如\"检测延迟\", \"隔离容量不足\")"], ["", "", "major_risk_factors", "Array of String", "导致方案失败的主要风险因素(如\"病毒传播力不足\", \"响应延迟过长\")"], ["", "", "overall_effectiveness_score", "Float", "方案综合效能评分(0-100)"], ["", "", "overall_risk_score", "Float", "方案综合风险评分(0-100)"] ] for row in data: ws.append(row) wb.save(filename) print(f"{filename} 已生成") if __name__ == "__main__": create_input_excel() create_output_excel()