1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 用Python读取Word文档并写入Excel(一)

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

时间:2018-10-22 14:47:10

相关推荐

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

工作中经常要处理大量的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-8import osimport win32comfrom win32com.client import Dispatch, constantsfrom docx import Documentdef 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 #1Gender = t.cell(1,3).text #1Race = t.cell(1,5).text #1School=t.cell(2,1).text #1Edu_back=t.cell(2,4).text #1Major=t.cell(3,1).text #1Grade=t.cell(3,4).text #1Poli_Status=t.cell(4,1).text#1Place=t.cell(4,3).text #15ID_card=t.cell(5,1).text #1Date_birth=t.cell(5,4).text#1Telephone=t.cell(6,1).text#1E_mail=t.cell(6,4).text #1QQ=t.cell(7,1).text #1Address=t.cell(7,4).text #1# Other=t_next.cell(1,1).textprint(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表格,方便我们查看和管理数据。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。