怎样用 AI 实现 Word/Excel 供应商调查表格的自动填充
·
前言:老程序员的新课题
大家好,我是老张,石家庄一家软件公司退休返聘的程序员。干了 40 年代码,从 Fortran 到 Python,从 Windows 98 到现在的 AI 时代。最近老板找我:“老张,供应商调查的活儿,年轻人忙不过来,你能不能研究下 AI 自动填表?”
我琢磨了一个月,今天跟大伙儿分享经验——不是技术多高深,而是思路要活络。
一、为什么要用 AI 自动填表?
现实痛点:
- 我们公司有 500+ 供应商,每个填 50+ 项调查表
- 人工填写:每人每天 3 家,一个月干不完
- 错误率高:身份证号、税号容易填错
- 数据分散:Excel、Word、PDF 混在一起
AI 能做什么:
✅ 识别文档内容
✅ 提取关键信息
✅ 自动填入对应表格
✅ 生成统一格式
二、技术方案:简单实用的三步走
第一步:准备文档
import os
from pathlib import Path
# 创建文档分类文件夹
dirs = ['pdf/', 'excel/', 'word/', 'completed/']
for d in dirs:
Path(d).mkdir(exist_ok=True)
关键点:
- PDF 用扫描仪或拍照
- Excel/Word 要规范命名:
供应商名_类型_日期.xlsx - 放在同一文件夹,方便批量处理
第二步:安装工具
# 推荐安装这些库
pip install pandas openpyxl python-docx pdfplumber pytesseract
pip install transformers torch # 如果要用大模型
pip install langchain # AI 框架
我的配置:
- Python 3.10 (稳定版)
- 虚拟环境:
python -m venv ai_env - 清华镜像源加速下载
第三步:核心代码
方案 A:规则匹配 (适合简单表格)
import pandas as pd
import re
def extract_supplier_info(file_path):
"""从文档提取供应商信息"""
info = {}
# 用正则表达式匹配关键信息
with open(file_path, 'r', encoding='utf-8') as f:
text = f.read()
# 匹配公司名称
company_match = re.search(r'公司名称[::]\s*(.+)', text)
if company_match:
info['公司名称'] = company_match.group(1).strip()
# 匹配统一社会信用代码
credit_match = re.search(r'信用代码[::]?\s*([A-Z0-9]{18})', text)
if credit_match:
info['统一社会信用代码'] = credit_match.group(1)
return info
方案 B:AI 模型提取 (适合复杂文档)
from transformers import pipeline
# 加载中文 NLP 模型
nlp = pipeline('token-classification', model='hfl/chinese-bert-wwm-ext')
def extract_with_ai(text):
"""AI 提取结构化信息"""
entities = nlp(text)
info = {
'公司名称': '',
'联系人': '',
'电话': ''
}
for entity in entities:
if entity['entity'] == 'B-ORG':
info['公司名称'] = entity['word']
elif entity['entity'] == 'B-PERSON':
info['联系人'] = entity['word']
return info
方案 C:自动生成 Excel 表格
def fill_excel_template(supplier_info, template_path, output_path):
"""将信息填入 Excel 模板"""
import openpyxl
# 读取模板
wb = openpyxl.load_workbook(template_path)
ws = wb.active
# 填充数据
for i, (key, value) in enumerate(supplier_info.items(), 2):
ws[f'B{i}'] = key
ws[f'C{i}'] = value
# 保存
wb.save(output_path)
print(f'已生成:{output_path}')
三、实战案例:石家庄某电子厂的供应商调查
场景:
- 500+ 供应商,每家 30 项信息
- 文档类型:扫描件 PDF、Excel、Word 混用
- 人工需要 3 个月,AI 自动化后 3 天完成
效果对比:
| 项目 | 人工 | AI 自动化 |
|---|---|---|
| 时间 | 90 天 | 3 天 |
| 错误率 | 8% | 0.5% |
| 成本 | 3 人×3 月 | 0.5 人·天 |
四、常见问题与解决方案
Q1:PDF 扫描不清晰怎么办?
A: 用 OCR 工具增强
import pytesseract
from PIL import Image
# 图像预处理
img = Image.open('scanned.pdf')
img = img.convert('L') # 转灰度
img = img.point(lambda x: 255 if x > 128 else 0) # 二值化
text = pytesseract.image_to_string(img, lang='chi_sim+eng')
Q2:AI 模型识别不准?
A: 混合策略
- 简单字段用正则
- 复杂文本用 AI
- 人工校验关键数据
Q3:数据安全如何保障?
A: 本地部署
- 不传云端,数据不出内网
- 用虚拟环境隔离
- 定期备份加密
五、给程序员们的建议
技术选型
- 小团队:规则匹配 + 简单 OCR (成本低,易维护)
- 大公司:AI 模型 + 工作流引擎 (准确率高,可扩展)
- 过渡方案:Excel 插件 + Python 脚本 (逐步升级)
开发要点
- ✅ 先做原型,验证可行再扩展
- ✅ 保留人工校验接口 (AI 不是万能的)
- ✅ 文档化代码 (方便后人维护)
- ✅ 版本管理 (git + 语义化版本)
避坑指南
- ❌ 不要一开始就追求 100% 自动化
- ❌ 不要忽视异常处理
- ❌ 不要硬编码路径 (用配置管理)
- ❌ 不要忽视隐私保护
六、未来展望
AI 能做得更好:
- 自动发现供应商风险 (工商信息查询)
- 实时数据更新 (API 对接工商局)
- 智能报告生成 (Word 自动排版)
- 多语言支持 (跨国供应商)
老程序员的思考:
“工具不是目的,效率才是。AI 不会取代程序员,但会用 AI 的程序员会取代不用 AI 的。关键不是技术多先进,而是能否解决实际痛点。”
结语:行动起来
如果你也是程序员,或者正在管理供应商,不妨试试这个方案:
- 选一个场景 (比如供应商合同)
- 写一个小工具 (先能跑通)
- 逐步优化 (迭代改进)
- 分享给团队 (共同进步)
最后送大家一句话: 代码要写好,问题要解决好,技术要为业务服务。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)