数据提取及整理 (Data Extraction & Organization)
Overview
本技能提供从多类来源(图片/扫描件、PDF、Word、Excel/CSV、网页)提取结构化数据,并规整为规范化 Excel 表格 或 Word 文档 的完整工作流与可复用脚本。面向内部审计、文档数字化、台账/清单建立、数据清洗等需求,强调中文排版规范(金额大写、日期格式、表头统一、序号连续)。
何时使用
- 用户要求从 图片、扫描件、PDF、Word、Excel、网页 中抽取文字或表格。
- 用户要求「整理」「汇总」「清洗」「去重」「合并」「建立台账/清单」。
- 用户要生成审计报告、问题清单、整改台账、取证表等规范化表格/文档。
- 典型触发语:
- 「把这张表录进 Excel」「从这 17 张图里提取内容」
- 「把 PDF 里的表格整理出来」「清洗这份台账」
- 「把网页上的数据抓下来做成表」
工作流(决策树)
- 明确来源与输出形态:先确认来源类型(图片/PDF/Word/Excel/网页)和期望输出(Excel / Word / 两者)。
- 选择提取通道:
- 图片 / 扫描件 → 优先用 Read 工具直接读取(多模态 OCR,对中文表格最准确、最省事);大批量或需脚本化时用
scripts/ocr_image.py。 - PDF →
scripts/pdf_extract.py - Word →
scripts/docx_extract.py - Excel / CSV →
scripts/excel_clean.py(清洗 / 合并 / 去重 / 拆分) - 网页 →
scripts/web_extract.py
- 图片 / 扫描件 → 优先用 Read 工具直接读取(多模态 OCR,对中文表格最准确、最省事);大批量或需脚本化时用
- 按规范整理:严格遵循
references/formats.md(金额大写、日期YYYY年MM月DD日、表头统一、序号连续、缺失值标注)。 - 生成落盘:输出为带样式的 Excel(
openpyxl)或规范化 Word(python-docx),保存到用户指定目录(默认桌面C:\Users\azrae\Desktop\),文件名带日期前缀便于归档。
环境准备
脚本依赖以下 Python 包,统一安装到受管 venv(避免污染用户环境):
# 若 venv 不存在先创建
C:\Users\azrae\.workbuddy\binaries\python\versions\3.13.12\python.exe -m venv C:\Users\azrae\.workbuddy\binaries\python\envs\default
PY=C:\Users\azrae\.workbuddy\binaries\python\envs\default/bin/python
$PY -m pip install pdfplumber pandas openpyxl python-docx beautifulsoup4 lxml requests easyocr
各脚本在缺少依赖时会打印清晰的安装提示,不会静默失败。OCR 脚本(easyocr)首次运行会下载中文识别模型(约百 MB),属正常行为;若环境不便下载,对图片优先使用 Read 工具抽取。
关键脚本
scripts/pdf_extract.py — PDF 文本与表格提取
$PY scripts/pdf_extract.py <input.pdf> [-o out.xlsx] [--json out.json] [--pages all|1-3]
- 文本按行提取到「文本」页(含页码)。
- 表格用
pdfplumber.extract_tables()抽取,合并到「表格」页(含页码、表序号)。 - 同时可输出 JSON 便于后续程序化处理。
scripts/docx_extract.py — Word 文档提取
$PY scripts/docx_extract.py <input.docx> [-o out.xlsx] [--json out.json]
- 提取标题层级、段落(含样式)、以及全部表格。
- 段落写入「段落」页,表格逐个写入「表格_N」页,结构写入 JSON。
scripts/excel_clean.py — Excel/CSV 清洗与整理
$PY scripts/excel_clean.py --mode clean <in.xlsx> -o out.xlsx
$PY scripts/excel_clean.py --mode merge <a.xlsx> <b.xlsx> -o out.xlsx
$PY scripts/excel_clean.py --mode dedupe <in.xlsx> -o out.xlsx [--key 列名]
$PY scripts/excel_clean.py --mode split <in.xlsx> --by 列名 -o 输出目录
clean:去空格、统一表头、空值标注「—」、去除全空行、类型推断。merge:纵向拼接多表(按表头对齐,缺失列补空)。dedupe:按指定列或全行去重。split:按某列取值拆分为多个文件(如按「被审计单位」拆台账)。
scripts/ocr_image.py — 图片/扫描件 OCR(批量)
$PY scripts/ocr_image.py <img1.webp> [img2.png ...] [-o out.xlsx] [--text out.txt]
- 使用 easyocr 对中文图片做文字识别,整图文本写入
out.txt,逐图分行写入 Excel。 - 仅做文本行抽取;若图片内含规整表格,建议直接用 Read 工具读取后由本技能结构化录入,准确率更高。
scripts/web_extract.py — 网页表格抓取
$PY scripts/web_extract.py <url> [-o out.xlsx] [--table 0]
- 用
pandas.read_html解析页面所有<table>,默认导出第 0 个;可指定序号。 - 无表格时回退用 BeautifulSoup 抽取正文关键列表。
中文格式规范(要点,详见 references/formats.md)
- 金额:凡涉及金额,同时给出阿拉伯数字与中文大写(如
¥1,234.56 人民币壹仟贰佰叁拾肆元伍角陆分)。 - 日期:统一
YYYY年MM月DD日;区间用YYYY年MM月DD日至YYYY年MM月DD日。 - 表头:首行为表头且加粗、居中、填充底色;序号列连续无跳号。
- 缺失值:统一填「—」,不得留空。
- 标题层级:文档标题二号加粗,一级标题三号,正文小四,行距 1.5。
输出落盘约定
- 默认目录:
C:\Users\azrae\Desktop\ - 文件名格式:
<日期>_<主题>_<形态>.xlsx|.docx(如2026-07-06_食堂审计台账_Excel.xlsx)。 - 完成后用
present_files将成品交付用户预览。
Resources
scripts/:上述五个可复用 Python 脚本。references/formats.md:内部审计文档中文排版与格式规范(金额大写、日期、表头、台账样式)。
微信扫一扫