Excel 工作簿
| 任务 | 路径 |
|---|---|
| 快速读取 XLSX | 运行自带读取脚本,保留工作表、行列和公式信息 |
| 读取 CSV/TSV | 用 Python csv 或通用文本工具;保留原始字段类型约束 |
| 新建或编辑工作簿 | 用 openpyxl 处理公式、格式、表格和图表 |
| 大批量数据清洗 | 标准库足够时直接使用;确有需要再用 pandas |
旧版 .xls |
用 LibreOffice 转为 .xlsx,保留原件 |
工作契约
- 只读问题不保存、重算或导出工作簿。
- 写操作默认另存新文件;模板和既有格式优先于默认样式。
- 先直接使用当前环境。
import openpyxl失败且任务需要写文件时,取得用户同意后在隔离环境安装${CLAUDE_SKILL_DIR}/requirements.txt,不要静默修改系统 Python。
读取
python3 "${CLAUDE_SKILL_DIR}/scripts/read_spreadsheet.py" "<input.xlsx>"
python3 "${CLAUDE_SKILL_DIR}/scripts/read_spreadsheet.py" "<input.xlsx>" --sheet "<sheet-name>" --max-rows 1000 --max-columns 100
python3 "${CLAUDE_SKILL_DIR}/scripts/read_spreadsheet.py" "<input.xlsx>" --output "<new-output.md>"
脚本同时显示公式文本和文件内缓存值。关键结论要定位到工作表与单元格,并沿公式引用核对输入; 缓存可能过期,不能把它当成刚刚重算的结果。
创建与编辑
在 workspace 或临时目录写一个可重复运行的短 Python 脚本,再用 openpyxl 输出文件。
- 数值、日期、百分比和货币写成真实类型,格式代码只负责显示;ID、邮编等标识符才写文本。
- 派生结果使用可读公式并引用输入单元格,不把 Python 计算值或魔法数字写死在计算区。
- 跨表引用始终给工作表名加单引号,例如
='Assumptions'!B5;正确使用绝对和相对引用。 - 读取公式与缓存值时分别打开两次。绝不能保存以
data_only=True打开的工作簿,否则公式会丢失。 - 编辑时延续相邻格式、公式模式、条件格式、表格和图表范围;不要对成熟模板做全表重排。
.xlsm使用keep_vba=True,并保持宏格式输出。外部链接、透视表、切片器和高级图表可能在往返保存时变化, 只修改必要区域并明确验证范围。
完成条件
- 含公式时先在单独目录用 LibreOffice 重算,检查转换结果后再作为最终文件,不能直接覆盖未验证的源文件。
- 用读取脚本回读关键范围,确认公式仍存在、缓存值已更新,并扫描
#REF!、#DIV/0!、#VALUE!、#NAME?、#N/A等错误。 - 用 LibreOffice 导出 PDF 或工作表预览,检查每张非空工作表的标题、表头、关键数字、图表、分页和打印区域。
- 缺少 LibreOffice 时可以继续不依赖重算的读取;含公式的写任务必须说明结果尚未由表格引擎重算。
- 最终只交付用户要求的 XLSX/XLSM/CSV/TSV,不附带构建脚本和预览文件。