Text-to-Excel 是一个将结构化文本转换为格式规整的 Excel 文件(.xlsx)的工具。
用途
该工具用于把用户提供的结构化文本内容生成为 Excel 表格。它适合需要将 Markdown 表格、CSV、列表、键值对、JSON 等数据快速整理为规范 Excel 文件的场景。
主要能力
工具支持解析多种输入格式:
- Markdown 表格(| col1 | col2 |)
- 纯文本表格(制表符或空格分隔)
- CSV/TSV 数据
- 列表(项目符号、编号)
- 键值对
- JSON 或类字典结构
- 具有可识别表格结构的自由文本
- 对目标表格内容的描述
在解析时,工具会识别表头、数据行、各列数据类型以及任何特殊格式要求。
生成的 Excel 支持以下功能:
- 多 sheet
- 合并单元格
- 样式设置
- 冻结窗格
- 自动筛选
- 条件格式
- 数据验证
- 图表生成
使用方式
工作流程分为四步:
Step 1:解析用户输入。分析用户提供的结构化文本,识别表头、数据行、数据类型和格式要求。
Step 2:询问输出路径。向用户询问保存路径,并根据内容建议合理的默认文件名(例如 ~/Desktop/sales_data.xlsx)。
Step 3:构建 JSON 配置。按照 references/config_schema.md 中的 schema 构建 JSON 配置对象。
最小示例: { "sheets": [{ "name": "Sheet1", "headers": ["Name", "Age", "City"], "data": [ ["Alice", 30, "Beijing"], ["Bob", 25, "Shanghai"] ] }] }
包含样式、图表和验证的完整示例: { "sheets": [{ "name": "Sales", "title_row": {"text": "Q1 Sales Report", "style": {"font": {"bold": true, "size": 16}}}, "headers": ["Month", "Revenue", "Growth"], "data": [ ["January", 50000, 0.12], ["February", 62000, 0.24], ["March", 58000, 0.16] ], "column_types": ["text", "currency_cny", "percent"], "freeze_pane": "A2", "auto_filter": true, "charts": [{ "type": "bar", "title": "Monthly Revenue", "x_column": 1, "y_columns": [2], "position": "E2" }], "conditional_formats": [{ "type": "color_scale", "range": "B2:B4" }] }] }
Step 4:生成 Excel。将 JSON 配置写入临时文件,运行命令:python3 scripts/generate_excel.py <config.json> <output_path>,验证文件已创建,并报告成功及文件路径。
样式默认值
脚本会自动应用专业默认样式:
- 表头:蓝色背景(#4472C4)、白色粗体文字、居中
- 数据行:灰色/白色交替条纹、细边框
- 列宽:根据内容长度自动计算
- 标题行(可选):大号粗体文字,跨所有列合并
可通过在配置中指定 header_style、data_style 或逐单元格样式来覆盖任何默认值。
高级功能
- 多 sheet:向 sheets 数组添加多个对象
- 合并单元格:使用 merge_cells 配合范围字符串或行/列对象
- 冻结窗格:设置 freeze_pane 为例如 "A2" 以冻结表头行
- 自动筛选:设置 auto_filter: true 以启用下拉筛选
- 图表:柱状图、折线图、饼图、面积图、散点图——参见 references/config_schema.md
- 数据验证:下拉列表、数值范围、日期范围、文本长度限制
- 条件格式:基于单元格的规则、色阶、数据条
- 数字格式:预定义(percent、currency_cny、currency_usd、date)或自定义 Excel 格式字符串
- 打印设置:方向、纸张大小、适合页面
完整 schema 参见:references/config_schema.md
适用场景
适用于需要将结构化文本快速转换为规范 Excel 文件的场景,例如整理销售数据、生成报表、转换 CSV 或 Markdown 表格等。
限制
资料中未明确说明该工具的运行环境依赖、支持的数据规模上限、错误处理机制等限制信息,暂未提供。