Excel工具
读取、创建、修改和验证 XLSX,支持模板保留、公式重算和错误检查。
它会碰到什么
扫了多少1 个文本文件,1 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Excel 工具
原则
- 输入表格只读,输出写入
PROJECT_ROOT。 - 普通结果汇总优先 CSV。
- 题目指定 XLSX、需保留公式、多工作表或模板结构时才使用 XLSX。
- 不覆盖题目原始附件和 Skill 文件。
读取与写入
import pandas as pd
# 第一行就是数据时必须显式使用 header=None。
data = pd.read_excel("data/input.xlsx", sheet_name=0, header=None)
assert len(data) == 7470, f"行数异常: {len(data)}"
result = pd.DataFrame({"方案": names, "目标值": values})
result.to_excel("results/结果.xlsx", index=False)
禁止依赖 pandas.read_excel() 默认的 header=0 猜测表头,否则第一行数据会被当成列名。未知表头结构或必须精确保留行时使用无隐式推断的读取工具:
from scripts.read_rows import read_excel_rows
rows = read_excel_rows(
"data/input.xlsx",
header=False,
expected_rows=7470,
)
assert rows[0][0] == 399.6747
读取后必须核对首行、末行、原始工作表有效行数和题目声明的记录数;行数不符时立即报错,不得静默继续建模。
使用模板时用 openpyxl.load_workbook() 打开,写入指定单元格后另存新文件。不要删除未知工作表、命名区域、公式或验证规则。
公式重算
openpyxl 不计算公式。修改含公式的工作簿后使用 LibreOffice 隔离重算:
python scripts/recalc.py "<PROJECT_ROOT>/results/结果.xlsx" 60
工具会:
- 使用唯一临时 LibreOffice 配置;
- 把重算结果写入临时目录;
- 检查常见 Excel 错误;
- 仅在成功后原子替换目标文件;
- 超时、失败或未生成输出时保留原文件。
DOCX 与 XLSX 共用的 OOXML/LibreOffice 基础代码位于 ../docx/scripts/office/,本工具不再维护重复副本。
检查
- 公式引用和范围正确。
- 工作表名、列名、数据类型和单位正确。
- 已显式声明是否有表头,首行、末行和预期数据行数均已核对。
- 无
#VALUE!、#DIV/0!、#REF!、#NAME?、#NULL!、#NUM!、#N/A。 - 结果与代码终端输出和论文表格一致。
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
星标★ 1,570
本站分层T1
该仓技能数20
原文件路径
dsh-plugin/math-modeling-agent/skills/math-modeling/tools/xlsx/SKILL.md同一个仓库里的其他技能
同名技能的其他版本
有 2 个不同仓库或目录里都有叫 Excel工具 的技能。它们内容并不相同,别混用:
- XiaoMaColtAI/math-modeling-skill — 读取、创建、修改和验证 XLSX,支持模板保留、公式重算和错误检查。