Constraint: Public skills are published only by explicit administrator action unless they are tracked third-party market sources. Confidence: high Scope-risk: narrow Directive: Keep private/internal skills out of the public marketplace and preserve normal incremental market Git history. Tested: Marketplace validation passed.
38 lines
3.0 KiB
Markdown
38 lines
3.0 KiB
Markdown
---
|
|
name: xlsx
|
|
description: 创建、读取、清理、编辑和检查 Excel 工作簿或 CSV/TSV,处理公式、图表、中文表头及 Windows Excel 编码,保留现有格式与宏。
|
|
license: Proprietary. LICENSE.txt has complete terms
|
|
---
|
|
|
|
# Excel 工作簿
|
|
|
|
先读取 [references/platform.md](references/platform.md),确认 Python、中文字体及是否需要公式计算引擎。复杂工作簿先检查公式、外部链接、宏、图表和现有样式,再选择处理方法。
|
|
|
|
- `openpyxl` 用于普通 .xlsx 单元格、公式和样式;`.xlsm` 读取时用 `keep_vba=True`,保留扩展名。不保证复杂 Excel 功能无损,必须检查实际需要保留的部分。
|
|
- `pandas` 适合表格数据清理;不要用整表重写处理需要保留样式、公式或图表的原文件。
|
|
- `.xls` 旧格式先使用兼容工具读取或转换;不要直接交给 openpyxl。
|
|
|
|
## 简体中文与数据类型
|
|
|
|
用户未指定语言时用简体中文表头、图例与说明。新文件使用可用的中文字体,表头、行高与列宽按中文实际长度设置;已有工作簿沿用其约定。身份证号、订单号、手机号和前导零存为文本,日期存真实日期值并设置明确格式,金额单位按用户要求标注。
|
|
|
|
Windows Excel 打开的新 CSV 可写 `utf-8-sig`;读取旧 CSV 先判断编码和分隔符。CSV 导出不保留多表、公式和样式,转换前明确所需交付格式。
|
|
|
|
## 公式与缓存
|
|
|
|
按用户语义写公式,验证引用范围与预期结果;不要用硬编码数值代替可重算公式。跨表引用含空格或中文标点时正确引用工作表名。合并区域只写左上角。
|
|
|
|
openpyxl 不计算公式。检查时分别用 `data_only=False` 读取公式、`data_only=True` 读取缓存;不能保存 `data_only=True` 的工作簿,否则公式会被数值覆盖。
|
|
|
|
```powershell
|
|
python "$skill\scripts\recalc.py" ".\输出 中文.xlsx" 120
|
|
```
|
|
|
|
重算会改写指定工作簿,先保留输入。脚本使用独立 LibreOffice profile,自动识别 Windows 的安装路径。检查 JSON 的 `status`、`total_errors` 和具体单元格;`errors_found` 即使进程退出码为零也未通过。含 `error` 的结果表示没有完成重算。
|
|
|
|
本市场的重算脚本只支持普通 `.xlsx`,无需安装 Basic 宏;使用临时副本转换,发现公式错误时不覆盖输入。不支持上游文档的 `--force` 参数,拒绝宏格式和外部链接工作簿。
|
|
|
|
有外部链接、宏、动态数组或 Excel 专用函数时,优先使用目标 Excel 环境验证,不能盲目用 LibreOffice 往返保存。兼容公式、缓存丢失和链接风险按需读取 [upstream-guide.md](upstream-guide.md)。无法运行计算引擎时说明“尚未重算”,不要声称公式已验证。
|
|
|
|
交付前核对数值、公式、中文显示、筛选、冻结窗格、打印区域和图表。用新输出文件保留输入;抽查代表行、合计和异常情况,避免只检查文件能够打开。
|