前言:老程序员的新课题

大家好,我是老张,石家庄一家软件公司退休返聘的程序员。干了 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: 本地部署

  • 不传云端,数据不出内网
  • 用虚拟环境隔离
  • 定期备份加密

五、给程序员们的建议

技术选型

  1. 小团队:规则匹配 + 简单 OCR (成本低,易维护)
  2. 大公司:AI 模型 + 工作流引擎 (准确率高,可扩展)
  3. 过渡方案:Excel 插件 + Python 脚本 (逐步升级)

开发要点

  • ✅ 先做原型,验证可行再扩展
  • ✅ 保留人工校验接口 (AI 不是万能的)
  • ✅ 文档化代码 (方便后人维护)
  • ✅ 版本管理 (git + 语义化版本)

避坑指南

  • ❌ 不要一开始就追求 100% 自动化
  • ❌ 不要忽视异常处理
  • ❌ 不要硬编码路径 (用配置管理)
  • ❌ 不要忽视隐私保护

六、未来展望

AI 能做得更好:

  • 自动发现供应商风险 (工商信息查询)
  • 实时数据更新 (API 对接工商局)
  • 智能报告生成 (Word 自动排版)
  • 多语言支持 (跨国供应商)

老程序员的思考:

“工具不是目的,效率才是。AI 不会取代程序员,但会用 AI 的程序员会取代不用 AI 的。关键不是技术多先进,而是能否解决实际痛点。”


结语:行动起来

如果你也是程序员,或者正在管理供应商,不妨试试这个方案:

  1. 选一个场景 (比如供应商合同)
  2. 写一个小工具 (先能跑通)
  3. 逐步优化 (迭代改进)
  4. 分享给团队 (共同进步)

最后送大家一句话: 代码要写好,问题要解决好,技术要为业务服务。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐