z-md-excel 是一个从 Markdown 文件提取表格并导出为格式化 Excel 文件的技能。
用途
当用户需要将 Markdown 表格转换为 Excel、把 .md 文件中的表格导出为 .xlsx、批量提取单个 Markdown 文件中的多个表格,或将 Markdown 表格数据解析为电子表格时,可触发此技能。
主要能力
- 逐行读取 Markdown 文件,检测由连续包含 | 的行组成的表格块。
- 跳过代码块(``` 围栏块)内的行。
- 要求存在 GFM 分隔行(如 |---|---|)才将表格视为有效。
- 提取出的每个表格写入同一个 Excel 文件的独立工作表,命名依次为 Table_1、Table_2 等。
- 表头行样式:蓝色背景、白色加粗字体、居中。
- 数据行:常规字体,自动调整列宽。
- 对齐方式:保留 Markdown GFM 标记(:--- 左对齐、:---: 居中、---: 右对齐)。
- 冻结窗格:冻结顶部首行,便于滚动查看。
- 剥离行内 Markdown:加粗、斜体、代码、链接、图片均转换为纯文本。
使用方式
环境要求:Python 3.7+,以及 openpyxl(安装命令:pip install openpyxl)。
命令行用法:
# 基础用法(输出默认命名为 <input_name>.xlsx)
python scripts/md2xlsx.py input.md
# 指定输出文件
python scripts/md2xlsx.py input.md output.xlsx
作为 Agent 的推荐工作流:
- 确认用户想要提取表格的 Markdown 文件。
- 确保已安装 openpyxl:pip install openpyxl
- 运行脚本:python /path/to/z-md-excel/scripts/md2xlsx.py <input.md> [output.xlsx]
- 报告结果:脚本会打印找到的表格数量及其尺寸。
编程方式(内联 Python):
import sys
sys.path.insert(0, '/path/to/z-md-excel/scripts')
from md2xlsx import extract_tables, write_xlsx
tables = extract_tables('input.md')
write_xlsx(tables, 'output.xlsx')
工作原理
- 逐行读取 Markdown 文件。
- 检测表格块(包含 | 的连续行)。
- 跳过代码块(``` 围栏块)内的行。
- 要求 GFM 分隔行(|---|---|)以验证表格。
- 剥离单元格内容中的行内 Markdown 格式。
- 将所有表格写入单个 Excel 文件。
适用场景
- 将 Markdown 文档中的表格批量整理为 Excel 工作簿。
- 需要保留表格对齐、表头样式与冻结首行的表格导出。
- 需要将含行内格式的 Markdown 表格转为纯文本数据表。
限制
- 仅支持 GFM 风格的管道表格(| col1 | col2 |)。
- 不支持 HTML <table> 元素。
- 不保留复杂的 Markdown 格式(会转换为纯文本)。
- 不支持嵌套表格。
文件结构
z-md-excel/
├── SKILL.md # 本文件(Agent 指令)
├── README.md # 面向人的文档
└── scripts/
└── md2xlsx.py # 核心提取脚本