你是一个前端开发专家,擅长用纯 HTML+JS 处理 Excel 文件。
请帮我写一个 Excel 模板生成工具,需求如下:
【功能描述】
用户输入结构化需求描述,工具生成一个标准化的 Excel 模板骨架
【输入】
- 用户在文本框输入需求,例如:
"我需要一个完整的企业年度经营分析报表模板:
- Sheet1:销售明细台账(订单号、日期、客户名称、区域、产品类别、产品名称、规格、销量、单价、销售额、成本、毛利润、毛利率、销售员、状态)
- Sheet2:月度销售分析(月份、总订单数、总销售额、总成本、总毛利润、平均毛利率、环比增长率)
- Sheet3:产品分析(产品类别、总销售额、销售额占比、总销量、平均单价、平均毛利率)
- Sheet4:区域业绩对比(区域、总销售额、目标销售额、达成率、排名、奖金系数)
- Sheet5:销售员绩效(销售员、总订单数、总销售额、平均订单金额、毛利率、客户数、回款率、星级评定)
- 需要自动计算:销售额=销量×单价,毛利润=销售额-成本,毛利率=毛利润/销售额,达成率=总销售额/目标销售额
- 需要数据验证、条件格式、图表需求和保护规则说明"
【处理逻辑】
1. 解析结构化文本,提取 Sheet 名称、列名、公式描述和规则描述
2. 根据描述生成 Excel 结构
3. 写入基础公式(如销售额、毛利润、毛利率、达成率、平均订单金额),不要只生成一个公式
4. 把条件格式、数据验证、图表需求整理到"规则说明" Sheet
5. 提供下载功能
【公式写入硬约束】
- 公式必须真实写入 Excel 单元格,不能只写在说明文字里
- 使用 SheetJS 时,公式单元格必须写成对象,例如 { t: 'n', f: 'H2*I2', v: 696.08 },不要写成字符串 '=H2*I2'
- 公式对象要带缓存值 v,让 Excel / WPS 打开时优先显示计算结果,而不是在单元格里直接显示公式文本
- 工作簿要设置重新计算属性,例如 workbook.Workbook.CalcPr = { fullCalcOnLoad: '1' }
- 每个业务 Sheet 至少预留 10 行可填写区域,并在对应列写入公式
- 如果 Sheet 定义行里用括号写了字段,例如"Sheet1:销售明细台账(订单号、日期、销量、单价、销售额)",必须从括号中解析字段,不能等下一行才解析
- 生成模板时不能只放空白行,要预置 10-12 行可填写示例数据,方便用户打开后立刻看到公式计算效果
- 销售明细台账:
* 销售额列写入公式:销量 * 单价
* 毛利润列写入公式:销售额 - 成本
* 毛利率列写入公式:IFERROR(毛利润 / 销售额, 0)
- 月度销售分析:
* 总毛利润列写入公式:总销售额 - 总成本
* 平均毛利率列写入公式:IFERROR(总毛利润 / 总销售额, 0)
* 环比增长率列写入公式:IFERROR((本月总销售额 - 上月总销售额) / 上月总销售额, 0)
- 产品分析:
* 销售额占比列写入公式:本行总销售额 / 总销售额合计
* 平均单价列写入公式:总销售额 / 总销量
- 区域业绩对比:
* 达成率列写入公式:总销售额 / 目标销售额
* 排名列写入公式:RANK
* 奖金系数列写入 IF 分段公式
- 销售员绩效:
* 平均订单金额列写入公式:总销售额 / 总订单数
* 星级评定列写入 IF 分段公式
- 百分比列设置为百分比格式,金额列设置为数值格式
- 生成完成后要能在 Excel / WPS 中看到公式栏里有公式,而不是纯文本
- 打开文件后,单元格区域应显示计算后的数值;只有选中单元格或查看公式栏时才看到公式
【网页工具实现要求】
- 页面必须包含一个大文本框,默认填入完整的企业年度经营分析报表模板需求
- 页面必须有"加载示例需求"按钮,点击后把完整示例写入文本框
- 页面必须有 4 个选项开关:自动公式、条件格式说明、数据验证说明、格式规则说明
- 页面必须有生成进度条、结果区域、模板结构预览和下载按钮
- 下载按钮必须真实触发 XLSX.writeFile 下载 Excel 文件,不能是伪按钮
- 代码中必须有这些核心函数:
* parseRequirement(text):解析 Sheet 名称、括号里的字段、公式描述和规则描述
* extractColumnsFromLine(line):从 Sheet 行括号中提取列名
* createTemplate(config):创建工作簿和多个 Sheet
* createTemplateRows(header, sheetName, count):生成 10-12 行示例数据
* applyBasicFormulas(worksheet, header):把公式写入单元格
* createRuleRows(config):生成规则说明 Sheet
- 生成后页面预览要显示每个业务 Sheet 的名称、字段和公式数量
【公式验收标准】
- 用默认示例生成后,销售明细台账 Sheet 中:
* J2 必须是公式 H2*I2
* L2 必须是公式 J2-K2
* M2 必须是公式 IFERROR(L2/J2,0)
- 月度销售分析 Sheet 中:
* E2 必须是公式 C2-D2
* F2 必须是公式 IFERROR(E2/C2,0)
* G3 必须是公式 IFERROR((C3-C2)/C2,0)
- 区域业绩对比 Sheet 中:
* D2 必须是达成率公式
* E2 必须是 RANK 排名公式
* F2 必须是奖金系数 IF 分段公式
- 销售员绩效 Sheet 中:
* D2 必须是平均订单金额公式
* H2 必须是星级评定 IF 分段公式
- 如果不能写入这些公式,就不要声称"模板生成完成"
【输出】
- 1 个 Excel 模板文件
- 文件名:[模板名称]_模板.xlsx
【要求】
- 纯 HTML 文件,有输入框和生成按钮
- 数据在本地处理
- 使用 SheetJS 库
- 代码要有详细注释
请生成完整的 HTML 代码。