返回顶部
x

xlsx-proExcel文件处理

Compétence pour manipuler les fichiers Excel (.xlsx, .xlsm, .csv, .tsv). Utiliser quand l'utilisateur veut : ouvrir, lire, éditer ou créer un fichier tableur ; ajouter des colonnes, calculer des formules, formater, créer des graphiques, nettoyer des données ; convertir entre formats tabulaires. Le livrable doit être un fichier tableur. NE PAS utiliser si le livrable est un document Word, HTML, script Python standalone, ou intégration Google Sheets.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.1
安全检测
已通过
2,013
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

xlsx-pro

OpenClawd 的 Excel 技能

TL;DR

  • - 使用公式(而非硬编码值)生成/编辑 Excel 文件。
  • 可选:通过 LibreOffice 无头模式进行重新计算并检测 Excel 错误。
  • 预期交付物:一个干净的电子表格文件(XLSX/XLSM/CSV/TSV)。

前置条件

Python 依赖

bash pip install openpyxl pandas xlrd xlwt

LibreOffice(用于公式重新计算)

bash

Ubuntu/Debian

sudo apt-get install libreoffice-calc libreoffice-common

质量标准

专业字体

  • - 除非另有说明,否则使用一致的字体(Arial、Times New Roman)

零公式错误

  • - 所有 Excel 文件必须无错误交付(#REF!、#DIV/0!、#VALUE!、#N/A、#NAME?)

保留模板

  • - 修改时严格保留现有格式和样式
  • 现有模板的约定始终优先

财务模型标准

颜色代码(行业标准)

  • - 蓝色文本(RGB: 0,0,255):硬编码输入,可修改的值
  • 黑色文本(RGB: 0,0,0):所有公式和计算
  • 绿色文本(RGB: 0,128,0):指向同一工作簿中其他工作表的链接
  • 红色文本(RGB: 255,0,0):指向其他文件的外部链接
  • 黄色背景(RGB: 255,255,0):关键假设或需要更新的单元格

数字格式

  • - 年份:文本格式(2024 而非 2,024)
  • 货币:格式 $#,##0;在标题中指定单位(收入(百万美元))
  • 零值:显示为 -(格式:$#,##0;($#,##0);-)
  • 百分比:默认格式 0.0%
  • 倍数:格式 0.0x(EV/EBITDA、P/E)
  • 负数:括号 (123) 而非负号 -123

关键:使用公式,而非硬编码值

始终使用 Excel 公式,而不是在 Python 中计算后硬编码。

❌ 错误 - 硬编码

python

错误:Python 计算后硬编码

total = df[Sales].sum() sheet[B10] = total # 硬编码 5000

错误:Python 计算增长率

growth = (df.iloc[-1][Revenue] - df.iloc[0][Revenue]) / df.iloc[0][Revenue] sheet[C5] = growth # 硬编码 0.15

✅ 正确 - Excel 公式

python

正确:让 Excel 计算

sheet[B10] = =SUM(B2:B9)

正确:Excel 公式计算增长率

sheet[C5] = =(C4-C2)/C2

正确:Excel 函数计算平均值

sheet[D20] = =AVERAGE(D2:D19)

工作流程

标准工作流程

  1. 1. 选择工具:pandas 用于数据,openpyxl 用于公式/格式
  2. 创建/加载:新建工作簿或打开现有文件
  3. 修改:数据、公式、格式
  4. 保存:写入文件
  5. 重新计算(如有公式则必须执行):python scripts/recalc.py output.xlsx
  6. 检查并修正检测到的错误

使用 pandas 读取和分析

python import pandas as pd

读取 Excel

df = pd.read_excel(file.xlsx) # 默认第一张工作表 allsheets = pd.readexcel(file.xlsx, sheet_name=None) # 所有工作表的字典

分析

df.head() # 预览 df.info() # 列信息 df.describe() # 统计信息

写入

df.to_excel(output.xlsx, index=False)

创建 Excel 文件

python from openpyxl import Workbook from openpyxl.styles import Font, PatternFill, Alignment

wb = Workbook()
sheet = wb.active

数据

sheet[A1] = Hello sheet[B1] = World sheet.append([Row, of, data])

公式

sheet[B2] = =SUM(A1:A10)

格式

sheet[A1].font = Font(bold=True, color=FF0000) sheet[A1].fill = PatternFill(solid, start_color=FFFF00) sheet[A1].alignment = Alignment(horizontal=center)

列宽

sheet.column_dimensions[A].width = 20

wb.save(output.xlsx)

编辑现有文件

python from openpyxl import load_workbook

加载现有文件

wb = load_workbook(existing.xlsx) sheet = wb.active # 或 wb[工作表名称]

遍历工作表

for sheet_name in wb.sheetnames: sheet = wb[sheet_name] print(f工作表: {sheet_name})

修改

sheet[A1] = 新值 sheet.insert_rows(2) # 插入行 sheet.delete_cols(3) # 删除列

添加工作表

newsheet = wb.createsheet(新工作表) new_sheet[A1] = 数据

wb.save(modified.xlsx)

公式重新计算

openpyxl 创建的文件包含公式字符串但不包含计算值。使用 recalc.py 脚本:

bash
python scripts/recalc.py [超时秒数]

该脚本:

  • - 首次运行时自动配置 LibreOffice 宏
  • 重新计算所有公式
  • 扫描所有单元格以查找 Excel 错误
  • 返回包含错误详情和位置的 JSON

输出解读

json { status: success, // 或 errors_found total_errors: 0, // 错误总数 total_formulas: 42, // 公式数量 error_summary: { // 如有错误则显示 #REF!: { count: 2, locations: [Sheet1!B5, Sheet1!C10] } } }

检查清单

必要检查

  • - [ ] 测试 2-3 个引用:验证它们提取了正确的值
  • [ ] 列映射:确认对应关系(第 64 列 = BL,而非 BK)
  • [ ] 行偏移:Excel 从 1 开始索引(DataFrame 第 5 行 = Excel 第 6 行)

常见陷阱

  • - [ ] NaN 处理:使用 pd.notna() 检查空值
  • [ ] 远距离列:FY 数据通常在 50 列之后
  • [ ] 多重匹配:查找所有出现
  • [ ] 除零错误:检查分母(#DIV/0!)
  • [ ] 无效引用:验证所有引用指向存在的单元格(#REF!)
  • [ ] 跨工作表引用:正确格式(Sheet1!A1)

最佳实践

库选择

  • - pandas:数据分析、批量操作、简单导出
  • openpyxl:复杂格式、公式、特定 Excel 功能

使用 openpyxl

  • - 单元格索引从 1 开始(row=1, column=1 = 单元格 A1)
  • 使用 dataonly=True 读取计算值
  • 注意:使用 dataonly=True 后保存会永久将公式替换为值
  • 大文件:使用 readonly=True 或 writeonly=True

使用 pandas

  • - 指定数据类型:pd.readexcel(file.xlsx, dtype={id: str})
  • 大文件指定列:usecols=[A, C, E]
  • 日期处理:parsedates=[date_column]

代码风格

重要:Python 代码简洁精炼,无多余注释。

对于 Excel 文件

  • - 注释包含复杂公式的单元格
  • 记录硬编码数据的来源
  • 包含关键计算的说明

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 xlsx-pro-1776370223 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 xlsx-pro-1776370223 技能

通过命令行安装

skillhub install xlsx-pro-1776370223

下载

⬇ 下载 xlsx-pro v1.0.1(免费)

文件大小: 10.43 KB | 发布时间: 2026-4-17 14:49

v1.0.1 最新 2026-4-17 14:49
- Ajout d'une section TL;DR pour résumer l'usage de la compétence.
- Clarification de l’objectif principal : produire des fichiers Excel avec formules, pas de valeurs calculées/hardcodées en Python.
- Précisions sur le rôle du recalcul LibreOffice et la détection d’erreurs Excel.
- Reformulation et condensation de certains paragraphes pour une lecture plus rapide.
- Pas de modification des workflows, standards ou exemples de code.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部