0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何提取Word文档表格保存到Excel

汽车电子技术 来源:Python数据分析之旅 作者:cauwfq 2023-02-24 16:00 次阅读

pYYBAGP4bbyAVXpCAADXKvoB5OQ057.png

一.项目背景

   日常工作中,我们不免会遇到接收大量相似的word文档,并需要把这些文档中的数
   据提取到Excel表中。例如,提取word文档中的财务数据、考勤数据等,将数据存储到
Excel表中,本次项目我们专门针对word文档中的表格数据进行解析与提取。

原始数据文件(word文档)

pYYBAGP4bdKAHwYAAAFhEpgV8zw520.png

word文档内容

poYBAGP4bd-APhZCAADIzEHXvkA620.png

本次我们的目标是提取表格列名称和人数这一行,最后存储为Excel文件。

目标Excel文件

pYYBAGP4beqARANZAAEIX1bBrqQ108.png

二.实现步骤

import pandas as pd
import docx
import os

#提取word文档表格
def DocParsing(path_para):
    #获取文件列表
    file_list = os.listdir(path_para)
    #创建存储所有数据的列表
    list_combine = []

    #遍历word文件列表
    for file in file_list:
        #读取word文档
        doc = docx.Document(path_para + '/' + file)
        #创建存储单个word文档数据的列表,key存储值,col存储列名称
        key, col = [], []
        #获取word文档的表格
        tb = doc.tables[0]
        #row_index 表示表格的行数
        row_index=0
        #遍历表格的行
        for row in tb.rows:
            #记录行数
            row_index += 1
            #不提取占比这行
            if row_index == 3:
                continue
            else:
            #遍历每行的单元格
                for cell in row.cells:
                    text = ""
                    #解析每一个单元格的数据
                    for p in cell.paragraphs:
                        text += p.text
                    #提取列名称
                    if row_index == 1 :
                        #提取人数数据
                        col.append(text)
                    else:
                        key.append(text)

        #修改列表'col'的第一个元素为‘部门’
        col[0] = '部门'
        #修改列表‘key’的第一个元素为具体部门名称
        key[0] = file[4:16]
        #将提取的数据转化为单行DataFrame对象
        data = pd.DataFrame({i: j for i, j in zip(col, key)}, index=[0])
        print(data)
        #将DataFrame对象存储到列表
        list_combine.append(data)

    #合并数据并重建索引
    df = pd.concat(list_combine, ignore_index=True)
    #输出数据
    print(df)
    #保存数据为Excel文件
    df.to_excel('考勤汇总表.xlsx')

DocParsing('./task/')

poYBAGP4bgWAYZu9AABUxXIEE58320.png
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6884

    浏览量

    88812
  • word
    +关注

    关注

    1

    文章

    78

    浏览量

    21906
  • Excel
    +关注

    关注

    4

    文章

    218

    浏览量

    55447
收藏 人收藏

    评论

    相关推荐

    wordexcel表格指定位置写

    wordexcel表格指定位置写,已经实现
    发表于 06-25 15:39

    LabVIEW读取EXCEL中的数据并复制到Word中生存报表

    版本是2012的,而且用到MS报表生成工具包 否则没法正常打开抛砖引玉,做的简单 需要的话可根据自己的要求扩展程序对于一些保存EXCEL中的数据,有时候需要做成word形式的表格以便
    发表于 03-30 22:07

    labview如何将图片粘贴到word或者excel

    现在能生成图片进入剪切板,请问有什么办法可以粘贴到指定的word或者excel文件里?或者能够实现将多个图片保存到word里也行,求高手指点
    发表于 09-11 16:07

    labview 自动保存到excel 的的程序 打包成exe ,会有问题

    labview自动保存到excel 的的程序 打包成exe会出现无法保存到excel 的 问题 ,请问大家遇到过同样的问题没
    发表于 07-09 14:42

    EXCEL数据保存加急

    串口通信中用EXCEL处置报表保存所选通道波形输出的数据时,怎样用4000个点把一个完整周期波形变化的过程保存到表格中,可以从表格中看到波形
    发表于 05-12 10:13

    面板怎么保存到两个excel电子表格

    有没有人见过这个问题? - 在我的程序结束时,我有两个面板,我想保存到两个excel电子表格中。我打开一个电子表格保存适当的图像然后关闭该
    发表于 10-25 11:08

    Labview写入Excel保存到本地后打开该文档会报错呢?如下图

    为什么Labview写入Excel保存到本地后打开该文档时会报错呢,报错如图所示
    发表于 04-23 17:35

    串口数据保存到excel 换列

    我从串口每次读1024个保存到excel 的第一列中,再读1024个数保存到第二列,要怎么可以实现 ,我之前的是只保存到某一列的,可以增加行,不知道怎么加列。
    发表于 11-21 16:24

    Microsoft Office WordExcel

    采用 Microsoft Office WordExcel 和 PowerPoint 2007 新增的文件格式打开、编辑和保存文档、工作簿和演示文稿。 Microsoft Office XP 和 2003 系统
    发表于 02-12 08:45 165次下载

    Office WordExcel和PowerPoint 文

    打开、编辑和保存采用从 Office 2007 开始引入到 Microsoft Office WordExcel 和 PowerPoint 中的 Open XML 文件格式的文档、工
    发表于 07-06 00:14 238次下载
    Office <b class='flag-5'>Word</b>、<b class='flag-5'>Excel</b>和PowerPoint 文

    word表格小技巧

    word表格小技巧 一、快速插入表格   拖动“插入表格”能插入的最大表格跟该图标位置、显示分辨率有关。如使用800×600分辨率时最
    发表于 01-08 09:56 1565次阅读

    如何使用labview读写word模板表格的内容

    文档的主要内容详细介绍的是使用labview通过书签的方式写入word模板表格,读出word表格中的内容(没有用书签方式读出)。
    发表于 10-22 08:00 99次下载
    如何使用labview读写<b class='flag-5'>word</b>模板<b class='flag-5'>表格</b>的内容

    使用Python操作excel表格的xlrd介绍

    文档的主要内容详细介绍的是使用Python操作excel表格的xlrd介绍。
    发表于 07-02 08:00 2次下载

    如何从Word、PPT或Excel提取所有图片并保存在其他地方?

    如果一个Word、PPT或者Excel文档里面,有很多图片,要怎么样才能把里面的图片全部保存到另外的地方?
    的头像 发表于 09-29 11:47 3133次阅读

    labview向WordExcel模板中写数据

    压缩包内为VI源码,2018labview,向WordExcel模板中写数据,Word模板文档必须设置书签,Excel在vi中指定单元格位
    发表于 05-17 11:51 36次下载