近期收集报名表,并将报名表的信息汇总。
令人难受的是,这些报名表都是 word 文档,几百份一个个复制下来真的费时费力(虽然可以看看姑娘们的靓照)。
那么,我们是否能用 python 实现这一功能呢?只会 pandas 这个库的我经过一下午的奋战,稍微了解了下相关的库。
首先,根据网上的信息,稀里糊涂地就导入了几个库。
import win32com
from win32com.client import Dispatch
from docx import Document
from openpyxl import Workbook
然后,我们定义一个可以读取 word 函数,同时让其变成 excel 的文件。
def parse_docx(f):
d = Document(f)
t = d.tables[0]
name = t.cell(0,2).text # 比如说标题在表格中位于(0,2)
place1 = t.cell(1,2).text # 籍贯
gender = t.cell(0,10).text # 性别
print(name, gender, place1, end='n/')
list = [name, gender, place1]
workbook = Workbook()
booksheet = workbook.active
booksheet.append(list)
workbook.save(f.split('.')[0] + '.xlsx')
最后,我们把这个函数放入一个循环中遍历整个文件夹。
if __name__ == "__main__":
w = win32com.client.Dispatch('Word.Application')
# 遍历文件
PATH = "python\word_to_excel\data_try" # path:文件路径
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)
这样下来,我们就可以轻轻松松将几百份报名表的信息放到汇总表里面了,只不过方法仅限于各个报名表制式一样,如果哪个报名表多打几个空格就可能在读取信息时读错位置。
如何使用Python合并多个excel文件或者sheet?
还没学会,知乎这个链接里面有怎么合并的代码,但是我用的时候没有权限打开文件夹。
以上是在杨幽科技学到的。