paper2excel 是一个用于批量读取论文 PDF、生成结构化总结并导出 Excel 的 Codex/Claude Code skill。
它适用于这样的场景:用户提供一个文件夹路径,目录中包含多篇可复制文本的 PDF 论文;skill 依次提取每篇论文内容,按固定字段生成精炼总结,最后将所有论文汇总保存到同一个 .xlsx 文件中。
- 批量扫描指定文件夹中的 PDF 文件
- 从 PDF 中提取论文文本内容
- 按固定字段生成结构化论文总结
- 将多篇论文汇总导出为单表 Excel
- 支持依赖检查与临时依赖安装
当前默认字段如下:
titlepublish+timekeywords研究现状motivationinsightmethod实验结论limitationother
字段规则如下:
title:英文标题publish+time:仅基于 PDF 内信息提取,优先Venue Yearkeywords:3 个英文关键词,使用分号分隔- 其余字段:中文精炼总结
默认长度约束如下:
研究现状:约 30 字motivation:约 30 字insight:约 30 字method:约 100 字实验结论:约 40 字limitation:约 30 字other:约 40 字
paper2excel/
├── SKILL.md
├── agents/
│ └── openai.yaml
└── scripts/
└── paper2excel.py
说明:
SKILL.md:定义 skill 的触发条件、字段规则和使用流程agents/openai.yaml:skill 的界面元信息scripts/paper2excel.py:提供依赖检查、依赖安装、PDF 提取和 Excel 写入能力
如果你希望 Codex 自动发现该 skill,建议将整个 paper2excel 文件夹放到:
~/.codex/skills/paper2excel确保目录中至少包含:
SKILL.mdagents/openai.yamlscripts/paper2excel.py
如果你已经把 paper2excel 安装到:
~/.codex/skills/paper2excel那么后续在 Codex 中不需要手动反复解释流程,只需要直接提出类似请求即可触发该 skill。
例如:
请使用 paper2excel 处理 /Users/yourname/papers
或者:
给你一个文件夹路径,请批量总结其中的 PDF 论文并导出 Excel:/Users/yourname/papers
也可以显式写成:
使用 $paper2excel 处理 /Users/yourname/papers
Codex 典型执行流程如下:
- 识别这是一个“批量读取 PDF 论文并导出 Excel”的请求
- 触发
paper2excelskill - 检查依赖是否齐全
- 提取目标文件夹中的 PDF 文本
- 按 skill 中定义的字段生成结构化总结
- 写出单表
.xlsx文件
如果 skill 已经安装,但依赖还没有准备好,建议先在 Codex 中让它执行:
请先检查 paper2excel 的依赖,如果缺失就安装到 /tmp/paper2excel_deps,然后处理 /Users/yourname/papers
如果依赖已经准备好了,后续通常只需要做两件事:
- 给出要处理的文件夹路径
- 指定输出 Excel 的位置,或者让 Codex自行决定输出路径
例如:
使用 $paper2excel 处理 /Users/yourname/papers,并把结果导出到 /Users/yourname/paper_summaries.xlsx
如果你希望修改字段、长度要求或输出格式,先更新 SKILL.md 和 scripts/paper2excel.py,再继续在 Codex 中使用即可。
如果你想调整输出字段、字段顺序或长度要求,主要修改以下两个位置。
文件位置:
SKILL.md
这里定义了:
- skill 的触发条件
- 输出字段
- 每个字段的含义
- 各字段的长度约束
- 缺失值处理规则
如果你想新增字段,例如增加 dataset 或 future work,需要在 SKILL.md 的以下部分同步修改:
## Output Schema## Field Rules## Summarization Rules
文件位置:
scripts/paper2excel.py
重点关注这个常量:
OUTPUT_COLUMNS = [
"title",
"publish+time",
"keywords",
"研究现状",
"motivation",
"insight",
"method",
"实验结论",
"limitation",
"other",
]如果你改了字段,需要同步修改:
OUTPUT_COLUMNSwidths字典中的列宽设置
例如新增字段 dataset,则至少需要:
- 在
OUTPUT_COLUMNS中加入dataset - 在
widths中加入对应列宽 - 在
SKILL.md中补充该字段定义和总结要求 - 在生成结构化 JSON 时输出该字段
- 仅基于 PDF 内部信息总结,不依赖外部检索
title、publish+time、keywords使用英文- 其他字段使用中文
- 缺失信息尽量留空,不编造
- 默认只处理目标文件夹当前层级,不递归子目录
- 当前适用于可复制文本的 PDF,不包含 OCR 流程
pypdf:提取 PDF 文本openpyxl:生成.xlsx- 允许skill时,会自动安装
- 当前只负责 PDF 文本提取和 Excel 写入
- 结构化总结 JSON 仍需要由 Codex 按 skill 规则生成
- 不递归子目录
- 不处理扫描版 PDF
- 不自动做 OCR
- 不自动联网补全会议或年份信息
- 增加从提取文本到结构化总结 JSON 的全自动脚本
- 支持递归扫描子目录
- 增加 OCR 兜底
- 增加额外字段,如
dataset、baseline、future work - 增加多 sheet 输出或失败日志