hs248613 发表于 2022-4-9 19:28

python 读取Word指定数据导入到Excel

本帖最后由 hs248613 于 2022-5-19 10:10 编辑

写在前面:

因为工作原因要审核一些工地上的计时工单子,简单来说就是核对几个时间段一工花了多少时间
几十、几百张单子手算太麻烦,也没有电子表,就写了个代码把数据导到Excel里计算
代码写完了,能用,发出来希望看到的大佬能在我基础上指点、优化下(代码写好了)
代码实现效果:
把计时工单子里的开始时间、结束时间提取出来到表格里,再利用表格计算时间,这样就可以核对里面的总时间是不是计算对了。
本人小白,刚开始心很大:要把doc转docx、要用循环遍历所有Word文件、用for循环把数据写入表格、写入计算。
后面变成了手动合并文档、手动转docx、for循环架构不起来,数据用笨办法一行代码一行代码的执行,计算手动表格里设置,表格提前建好。


需要提取的数据:




执行后获得的数据:



下面是代码和附件,有兴趣的可以自己试试

from docx import Document
from openpyxl import load_workbook
import re
# path = r'C:/Users/HS/Desktop/python_riqi/小挖机.docx'wb = load_workbook(r'./导出数据.xlsx')#读取当前目录下文件,文件名可根据需求更改
ws = wb.active

# 读取文件
document = Document(r'./小挖机.docx') #读取当前目录下文件,文件名可根据需求更改
# 读取word中的所有表格
tables = document.tables
for i in range(0,12):
    # 获取第n张表
    table0 = tables
    date1_0 = table0.cell(0, 3).text
    #print(date1_0)
    date1 = table0.cell(3, 1).text#获取指定单元格信息
    # print(date1)
    date1_1 = re.findall(r"上午开始时间:(.*);",date1)   #正则获取单元格信息
    date1_2 = re.findall(r"上午完成时间:(.*);",date1)
    date1_3 = re.findall(r"下午开始时间:(.*);",date1)
    date1_4 = re.findall(r"下午完成时间:(.*);",date1)
    date1_5 = re.findall(r"晚上开始时间:(.*);",date1)
    date1_6 = re.findall(r"晚上完成时间:(.*);",date1)
    # print(date1_1)
    ws.cell(i*8+2,2).value = date1_0[5:]   #将获取到的时间写入表格
    ws.cell(i*8+3,2).value = date1_1[0]
    ws.cell(i*8+4,2).value = date1_2[0]
    ws.cell(i*8+5,2).value = date1_3[0]
    ws.cell(i*8+6,2).value = date1_4[0]
    ws.cell(i*8+7,2).value = date1_5[0]
    ws.cell(i*8+8,2).value = date1_6[0]
    i +=1
wb.save('导出数据.xlsx')
print('save…………\n数据读取完毕')


Word表格和Excel文件链接

链接:https://pan.baidu.com/s/1oaraDcc5lrpASLCECYaFEA?pwd=z7lb
提取码:z7lb

zpy2 发表于 2022-4-9 20:35

用在线表单手机不香吗?

王某人 发表于 2022-4-9 20:51

单子不统一 你就尴尬了{:1_907:}

zhcj66 发表于 2022-4-9 23:16

王某人 发表于 2022-4-9 20:51
单子不统一 你就尴尬了

这种代码能封装成.exe类的执行文件吗

科大的思念 发表于 2022-4-10 11:18

http://36.99.39.228:9830/zhouk-qrcode/#/personal核酸预登记,求能表格信息批量进行登记,保存二维码(文件名:姓名+身份证号)。

hs248613 发表于 2022-4-10 13:46

科大的思念 发表于 2022-4-10 11:18
http://36.99.39.228:9830/zhouk-qrcode/#/personal核酸预登记,求能表格信息批量进行登记,保存二维码( ...

senelium+openpyxl就可以了

hs248613 发表于 2022-4-10 13:48

王某人 发表于 2022-4-9 20:51
单子不统一 你就尴尬了

手动统一 {:1_907:},毕竟处理最基础的琐碎琐、零散的数据才 最难的,有规律的就好弄多了,除此之外就只能让别人按你模板填

hs248613 发表于 2022-4-10 13:51

zhcj66 发表于 2022-4-9 23:16
这种代码能封装成.exe类的执行文件吗

可以的,封装好发给别人用。但前提要保证你代码考虑了各种特殊情况、或者你不考虑处理特殊情况,封装了发给别人前写好使用说明。不然还是用代码方便修改。

hs248613 发表于 2022-4-10 17:10

科大的思念 发表于 2022-4-10 11:18
http://36.99.39.228:9830/zhouk-qrcode/#/personal核酸预登记,求能表格信息批量进行登记,保存二维码( ...

Auto Macro Recorder v4.6.2.8 自动宏录制工具,可重复鼠标键盘动作
https://www.52pojie.cn/thread-1619002-1-1.html
(出处: 吾爱破解论坛)
用这个鼠标自动软件,也可以,网页打开放左边,表格放右边,重复复制,点击,粘贴,提交
页: [1]
查看完整版本: python 读取Word指定数据导入到Excel