# PRD 计划执行：导出 PDF/Excel 格式

> 模块：服务监测（service_monitor）
> 优先级：P2
> 创建日期：2026-07-23
> 需求文档：`PRD_需求文档_导出PDF_Excel格式.md`

---

## 执行计划

### 阶段一：Excel 导出实现（预估 1h）

**任务清单**：

- [ ] 1.1 新增 export_excel() 函数
  - 文件：`skill/code/web/service_monitor/services/report_service.py`
  - 使用 `openpyxl`（已在依赖中）
  - Sheet 1：汇总信息
  - Sheet 2：检测明细（全量表格 + 条件格式）

- [ ] 1.2 集成到导出 API
  - 文件：`skill/code/web/service_monitor/routes.py`
  - 修改：`api_export_report()` 增加 `format=excel` 支持

**验收标准**：
- Excel 导出成功
- 两个 Sheet 正确
- 状态颜色标记生效

---

### 阶段二：PDF 导出实现（预估 1.5h）

**任务清单**：

- [ ] 2.1 新增 export_pdf() 函数
  - 文件：`skill/code/web/service_monitor/services/report_service.py`
  - 生成带打印样式的 HTML
  - 使用 weasyprint 转 PDF（如可用），否则降级返回 HTML

- [ ] 2.2 PDF HTML 模板
  - 内联 CSS 样式
  - @page 分页规则
  - 中文字体支持
  - 页眉页脚

- [ ] 2.3 集成到导出 API
  - 修改：`api_export_report()` 增加 `format=pdf` 支持

**验收标准**：
- PDF 导出成功
- 中文显示正常
- 样式清晰

---

### 阶段三：前端集成 + 测试（预估 0.5h）

**任务清单**：

- [ ] 3.1 修改导出菜单
  - 文件：`skill/code/web/templates/service_monitor/report.html`
  - 新增："导出 PDF"、"导出 Excel" 选项

- [ ] 3.2 更新文档 + Git commit

**验收标准**：
- 导出菜单显示新选项
- 各格式导出正常

---

## 关键文件清单

### 修改文件

| 文件 | 改动 |
|------|------|
| `requirements.txt` | 新增 weasyprint 依赖 |
| `service_monitor/services/report_service.py` | 新增 export_pdf()、export_excel() |
| `service_monitor/routes.py` | api_export_report() 增加 pdf/excel |
| `templates/service_monitor/report.html` | 导出菜单新增选项 |

---

## 风险与注意事项

### 风险 1：weasyprint 依赖 GTK

**决策**：使用 try/except 降级策略，weasyprint 可用时生成 PDF，不可用时返回可打印 HTML

### 风险 2：大报告性能

**缓解**：Excel 使用 openpyxl 的 write_only 模式（如需），PDF 限制单页内容量