import type { NormalizedCandidate } from './recommendation.service.ts'; function escapeHtml(value: string): string { return value .replaceAll('&', '&') .replaceAll('<', '<') .replaceAll('>', '>') .replaceAll('"', '"'); } /** * 生成媒体资源推荐表 Excel (HTML table format compatible with MS Excel) * 按模板生成:账号名称、ID、账号类型、地区、链接、粉丝数、赞藏数、 * 图文/视频报价、推荐等级、推荐理由等字段 */ export function generateExcelBuffer(candidates: NormalizedCandidate[], taskFileName?: string): Buffer { const title = taskFileName ? taskFileName.replace(/\.[^.]+$/, '') : '达人推荐表'; const now = new Date().toLocaleDateString('zh-CN'); const headerRow = `
| ${escapeHtml(title)} - 媒体资源推荐表 | ||||||||||||||||
| 生成时间:${now} | 候选总数:${candidates.length} | 强推荐:${candidates.filter(c => c.recommendStatus === '强推荐').length} | 备选:${candidates.filter(c => c.recommendStatus === '备选').length} | ||||||||||||||||