用Python读取Word文档并写入Excel(一)

本文介绍了一种使用Python和Win32库批量提取大量Word文档信息的方法,并提供了具体代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作中经常要处理大量的word文档,大部分内容都很简单,比如说做一个汇总表,从发来的word文档里提取名字、联系方式、地址等信息,提取完之后还需要用Excel做汇总,对于十几份的文档尚好,但对于成百份,甚至上千份的word文档,即便只是基本的复制粘贴,这个工作量也实在是太大。
于是,想想能不能自己写一个脚本,能自动的提取word文档里的主要信息,并自动写入Excel文档。

首选语言便是Python,查询知主要有以下几种方法:
1.xlrd和xlwt库(在命令行下输入pip install xlrd/xlwt安装)
2.win32

首先,xlrd和xlwt只支持doc和xls文件格式,但想到docx和xlsx已经全面普及,所以直接否决掉,那么第二种方法则是直接调用offic的API进行操作,十分强大,因为在offic上能完成的操作,都能通过win32完成,所以我们选择使用win32。
这一部分,我们先来获取报名表的信息,报名表word打开之后是这样子的:

这里写图片描述

我们需要提取其中的姓名、性别、民族、学校、学历、专业、年级、政治面貌等个人信息
很明显,所有的信息都在一张table里,于是便可以很方便的运用word里的API提取信息:
代码如下:
#coding:utf-8

import os
import win32com
from win32com.client import Dispatch, constants
from docx import Document

def parse_docx(f):
  """读取docx,返回姓名和行业
  """
  d = Document(f)
  t = d.tables[0]
  t_next=d.tables[1]
  #title= t.cell(0,1).text//比如说标题在表格中位于(0,1)
  name = t.cell(1,1).text   #1
  Gender = t.cell(1,3).text #1
  Race = t.cell(1,5).text   #1
  School=t.cell(2,1).text   #1
  Edu_back=t.cell(2,4).text #1
  Major=t.cell(3,1).text    #1
  Grade=t.cell(3,4).text    #1
  Poli_Status=t.cell(4,1).text#1
  Place=t.cell(4,3).text    #15
  ID_card=t.cell(5,1).text  #1
  Date_birth=t.cell(5,4).text#1
  Telephone=t.cell(6,1).text#1
  E_mail=t.cell(6,4).text   #1
  QQ=t.cell(7,1).text       #1
  Address=t.cell(7,4).text  #1
#  Other=t_next.cell(1,1).text
  print(name, Gender,Race,School,Edu_back,Major,Grade,Poli_Status,Place,Date_birth,Telephone,E_mail,QQ,Address,end='\n ')


''' 上述函数主要实现文件的读取 '''
if __name__ == "__main__":
  w = win32com.client.Dispatch('Word.Application')

  # 遍历文件
  PATH = "E:\wordtest" # windows文件路径
  doc_files = os.listdir(PATH)
  for doc in doc_files:
    if os.path.splitext(doc)[1] == '.docx':
      try:
        parse_docx(PATH+'\\'+doc)
      except Exception as e:
        print(e) 

程序的代码看起来十分的简单,我们不作多解释,直接看结果,我们采用的IDE为PyCharm
结果

从word文档提取信息就是这么简单,接下来一讲,我们将会将读取的信息写入一个已经存在的Excel表格,方便我们查看和管理数据。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值