精华内容
下载资源
问答
  • Python读取Word表格数据
    千次阅读
    2020-03-06 20:49:17

    import docx
    from docx import Document #导入库

    path = "E:\\python_data\\1234.docx" #文件路径
    document = Document(path) #读入文件
    tables = document.tables #获取文件中的表格集
    table = tables[0  ]#获取文件中的第一个表格
    for i in range(1,len(table.rows)):#从表格第二行开始循环读取表格数据
        result = table.cell(i,0).text + "" +table.cell(i,1).text+
        table.cell(i,2).text + table.cell(i,3).text
        #cell(i,0)表示第(i+1)行第1列数据,以此类推
        print(result)
     

    更多相关内容
  • 1.Word文档如下: 2.代码 # -*- coding: UTF-8 -*- from docx import Document def readSpecTable(filename, specText): document = Document(filename) paragraphs = document.paragraphs allTables = ...
  • Python读取Word表格数据及批量处理的方法.pdf
  • 今天小编就为大家分享一篇python读取word文档,插入mysql数据库的示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python读取Word表格数据及批量处理的方法
  • 主要介绍了Python实现批量读取word表格信息的方法,可实现针对word文档的读取功能,具有一定参考借鉴价值,需要的朋友可以参考下
  • python读取word文档表格里的数据

    万次阅读 2018-05-25 14:33:39
    直接在命令行执行pip install python-docx 示例代码如下: import docx from docx import Document #导入库 path = "E:\\python_data\\1234.docx" #文件路径 document = Document(path) #...

    首先需要安装相应的支持库:
    直接在命令行执行pip install python-docx


    示例代码如下:

    import docx
    from docx import Document #导入库
    
    path = "E:\\python_data\\1234.docx" #文件路径
    document = Document(path) #读入文件
    tables = document.tables #获取文件中的表格集
    table = tables[0  ]#获取文件中的第一个表格
    for i in range(1,len(table.rows)):#从表格第二行开始循环读取表格数据
        result = table.cell(i,0).text + "" +table.cell(i,1).text+
        table.cell(i,2).text + table.cell(i,3).text
        #cell(i,0)表示第(i+1)行第1列数据,以此类推
        print(result)
    展开全文
  • 读取word内容写入excel

    2018-08-15 12:08:17
    python脚本,实现从word读取数据块,写入到excel表格
  • python提取word表格数据

    千次阅读 2021-08-03 13:00:33
    案例思想是源于前两天帮读者做了一个 demo ,需求大致将一上百个 word表格内容提取出来(所有word表格样式一样),把提取到的内容自动存入 Excel 中。 原文地址 作者:zeroing 程序源码 from win32...

    程序分析

    今天文章介绍一个实战案例,与自动化办公相关;案例思想是源于前两天帮读者做了一个 demo ,需求大致将一上百个 word 中表格内容提取出来(所有word 中表格样式一样),把提取到的内容自动存入 Excel 中。
    原文地址 作者:zeroing

    程序源码

    from win32com import client as wc 
    import os
    import pandas as pd
    import docx
    
    path="C:\\Users\Lenovo\PycharmProjects\infoexarct\\table\\" #设置文件的目录
    
    def doc_to_docx(path):
        path_list = os.listdir(path)
        doc_list = [os.path.join(path,str(i)) for i in path_list if str(i).endswith('doc')]
        word = wc.Dispatch('Word.Application')
        wordlist_path=[]
        print("正在读取文件目录....")
        for doc_path in doc_list:
            doxc_path_save=doc_path.replace(path,"C:\\Users\Lenovo\PycharmProjects\infoexarct\\table\\temp\\")
            save_path = str(doxc_path_save).replace('doc','docx')
            doc = word.Documents.Open(doc_path)
            doc.SaveAs(save_path,12, False, "", True, "", False, False, False, False)
            doc.Close()
            wordlist_path.append(save_path)
            print('{} Save sucessfully '.format(save_path))
        word.Quit()
        print("文件转换已完成,开始分析文件....")
    
        return wordlist_path
    
    
    
    def GetData_frompath(save_path):
        document = docx.Document(save_path)
        col_keys = [] # 获取列名
        col_values = [] # 获取列值
        index_num = 0
        for table in document.tables:
            for row_index,row in enumerate(table.rows):
                for col_index,cell in enumerate(row.cells):
    
                    if (col_index==4 and row_index<7) :
                        continue
                    # print(' pos index is ({},{})'.format(row_index, col_index))
                    # print('cell text is {}'.format(cell.text))
                    if row_index<7:
                        if index_num % 2==0:
                            col_keys.append(cell.text)
                        else:
                            col_values.append(cell.text)
                        fore_str = cell.text
                        index_num +=1
                    else:
                        if col_index >0 :
                            break
                        else:
                            if index_num % 2 == 0:
                                col_keys.append(cell.text)
                            else:
                                col_values.append(cell.text)
                            fore_str = cell.text
                            index_num += 1
    
        col_keys.pop(3)
        col_values.pop(3)
        col_values[11] = '\t' + col_values[11]
        # print(f'col keys is {col_keys}')
        # print(f'col values is {col_values}')
    
        return  col_keys,col_values
    
    
    
    def create_csv(wordlist_path):
        pd_data = []
        for index,single_path in enumerate(wordlist_path):
            col_names,col_values = GetData_frompath(single_path)
            print(f"已录入{index+1}名学生信息")
            if index == 0:
                pd_data.append(col_names)
                pd_data.append(col_values)
            else:
                pd_data.append(col_values)
    
        df = pd.DataFrame(pd_data)
        #csv_path="C:\\Users\Lenovo\PycharmProjects\infoexarct\\finsh.csv"
        # df.to_csv(csv_path, encoding='utf_8_sig',index=False,header=None)
        df.to_excel('data.xlsx', sheet_name='工作表1',index=False,header=None)
        print("程序执行结束.....")
    
    
    wordlist_path=doc_to_docx(path)
    
    create_csv(wordlist_path)
    

    常见错误

    from win32com import client as wc
    word = wc.Dispatch(‘Word.Application’)

    安装包 pip install pypiwin32
    如果报错 DLL load failed while importing win32api:找不到指定的模块
    在这里插入图片描述
    那么我们可以找到自己安装的环境的脚本目录 ,一般在python安装环境的
    在这里插入图片描述
    运行一下命令 python pywin32_postinstall.py -install 就安装完成了
    安装处理docx的包
    pip install docx

    报错 from exceptions import PendingDeprecationWarning
    ModuleNotFoundError: No module named ‘exceptions’
    在这里插入图片描述
    python3.x版本移除了exceptions模块,但是docx包中引用了该模块

    安装最新版python-docx模块即可
    #1 pip install python-docx安装问题解决

    modulenotfounderror: no module named 'xlwt’解决方案 python padans 输出excel出错
    在这里插入图片描述

    展开全文
  • Python实现读取Word表格计算汇总写入Excel 快过年了,又到了公司年底评级的时候了。今年的评级和往常一下,每个人都要填写公司的民主评议表,给各个同事进行评价打分,然后部门收集起来根据收集上来的评价表进行汇总...

    Python实现读取Word表格计算汇总写入Excel

    快过年了,又到了公司年底评级的时候了。今年的评级和往常一样,每个人都要填写公司的民主评议表,给各个同事进行评价打分,然后部门根据收集上来的评价表进行汇总统计。想想要收集几十号人的评价表,并根据每个人的评价表又要填到Excel中进行汇总计算统计给出每个人的评价,就头大。虽然不是个什么难事,但是是个无脑的细致活。几十个人的评价也得要花大半天的时间来弄,而且搞多了还容易搞错。如是就想起干脆用Python写个小程序自动来处理这些脏活累活,评级年年都要评,每年都可以用。

    要做的事情就是读放到某个文件夹中的word文档中的评价表格,根据表格内容进行处理,然后汇总所有的表格数据,根据计算规则,算出每个人的评分,在根据评分计算每个人的评价。汇总后写入Excel中。
    处理Word解析、汇总、统计写入Excel

    不可否认用Python来实现这样的事情真的是太方便了,人生苦短我用Python。
    我是用的python的docx包来处理word,用pandas来处理数据并写入excel

    一、首先导入包

    pip install docx
    pip install pandas
    

    pandas写excel依赖openpyxl包所以也到导入

    pip install openpyxl
    

    二、读评价表所在的目录文件

    通过python的os包,列出文件夹里面的文件,识别出.docx的文件

    files=os.listdir(filepah)
    for file in files:
        if file.find('.docx')>0:
            docfilepah=filepah+file
    

    三、读word文件,处理word中的表格数据

    data=[]
    #读word的docx评议表文件,并读取word中的表格数据
    def procdoc(docfilepath):
        document=Document(docfilepath)
        tables=document.tables
        table=tables[0]
        for i in range(1,len(table.rows)):
            id=int(table.cell(i,0).text)
            name=table.cell(i,1).text
            excellent=0
            if table.cell(i,2).text!='' and table.cell(i,2).text is not None:
                excellent=1
            competent = 0
            if table.cell(i, 3).text!='' and table.cell(i, 3).text is not None:
                competent=1
            basicacompetent=0
            if table.cell(i, 4).text!='' and table.cell(i, 4).text is not None:
                basicacompetent=1
            notcompetent = 0
            if table.cell(i, 5).text!='' and table.cell(i, 5).text is not None:
                notcompetent=1
            dontunderstand =0
            if table.cell(i, 6).text!='' and table.cell(i, 6).text is not None:
                dontunderstand=1
            appraisedata=[id,name,excellent,competent,basicacompetent,notcompetent,dontunderstand]
            data.append(appraisedata)
    

    四、统计计算

    通过pandas直接对数据进行统计计算,避免了传统的循环计算。

    df = pd.DataFrame(data,columns=['序号','姓名','优秀','称职','基本称职','不称职','不了解'])
    df=df.groupby(['序号','姓名']).sum() #汇总每个人每一项的评分
    df['票数'] = df.apply(lambda x: x.sum(), axis=1) #统计票数
    df['计分'] = (df['优秀']*95+df['称职']*85+df['基本称职']*75+df['不称职']*65+df['不了解']*0)/len(df)#根据规则计分
    df['评价']=df['计分'].map(getscore) #根据规则评价评级
    

    计分方法:民主评议得分=Σ各等级票数*等级计分分数/总票数,其中“优秀”计95分,“称职”计85分,“基本称职”计75分,“不称职”计65分,“不了解”不计分。

    #根据评分规则计算评级
    def getscore(x):
        if x>=95:
            score='优秀'
        elif x>=80 and x<95:
            score='称职'
        elif x>=75 and x<80:
            score='基本称职'
        elif x<75:
            score='不称职'
        return score
    

    五、将统计计算结果写入汇总Excel

    通过pandas直接可以将dataframe写入到Excel文件

    #将汇总计算好的数据写入Excel
    def write2excle(exclefile,dataframe):
        writer = pd.ExcelWriter(exclefile)
        dataframe.to_excel(writer)
        writer.save()
        print('输出成功')
    

    完整代码

    Python不到八十行代码,实现读Word->处理表格数据->汇总计算数据->写Excel。
    完整的代码如下:

    import os
    import pandas as pd
    from docx import Document
    
    data=[]
    #读word的docx评议表文件,并读取word中的表格数据
    def procdoc(docfilepath):
        document=Document(docfilepath)
        tables=document.tables
        table=tables[0]
        for i in range(1,len(table.rows)):
            id=int(table.cell(i,0).text)
            name=table.cell(i,1).text
            excellent=0
            if table.cell(i,2).text!='' and table.cell(i,2).text is not None:
                excellent=1
            competent = 0
            if table.cell(i, 3).text!='' and table.cell(i, 3).text is not None:
                competent=1
            basicacompetent=0
            if table.cell(i, 4).text!='' and table.cell(i, 4).text is not None:
                basicacompetent=1
            notcompetent = 0
            if table.cell(i, 5).text!='' and table.cell(i, 5).text is not None:
                notcompetent=1
            dontunderstand =0
            if table.cell(i, 6).text!='' and table.cell(i, 6).text is not None:
                dontunderstand=1
            appraisedata=[id,name,excellent,competent,basicacompetent,notcompetent,dontunderstand]
            data.append(appraisedata)
    
    #读取评议表的目录,并处理目录中的docx文件,根据评议表计算评分,写入汇总表。
    def readfile(filepah):
        files=os.listdir(filepah)
        for file in files:
            if file.find('.docx')>0:
                docfilepah=filepah+file
                procdoc(docfilepah)
        df = pd.DataFrame(data,columns=['序号','姓名','优秀','称职','基本称职','不称职','不了解'])
        print(df)
        df=df.groupby(['序号','姓名']).sum()
        df['票数'] = df.apply(lambda x: x.sum(), axis=1)
        df['计分'] = (df['优秀']*95+df['称职']*85+df['基本称职']*75+df['不称职']*65+df['不了解']*0)/len(df)
        df['评价']=df['计分'].map(getscore)
        print(df)
        write2excle('民主评议\\民主评议表汇总.xlsx',df)
    
    #根据评分规则计算评级
    def getscore(x):
        if x>=95:
            score='优秀'
        elif x>=80 and x<95:
            score='称职'
        elif x>=75 and x<80:
            score='基本称职'
        elif x<75:
            score='不称职'
        return score
    
    #将汇总计算好的数据写入Excel
    def write2excle(exclefile,dataframe):
        writer = pd.ExcelWriter(exclefile)
        dataframe.to_excel(writer)
        writer.save()
        print('输出成功')
    
    if __name__ == '__main__':
        readfile('民主评议\\')
    

    全部源代码:https://github.com/xiejava1018/pythonprocword

    作者博客:http://xiejava.ishareread.com/

    展开全文
  • python读取word文件里的表格

    千次阅读 2021-01-30 03:19:28
    借用了pythonword文件里的表格读取到power bi里面。python这部分的代码如下。说明一下:用了docx库,这个库不支持doc的格式。:from docx import Documentimport pandas as pdres=[]#docx库不支持doc格式def read_...
  • 首页介绍下word表格内容,实例如下: 每两个表格后面是一个合并的单元格 2.引入win32com模块 3.具体代码 1 #http://www.jb51.net/article/70318.htm 2 #http://www.cnblogs.com/graphics/articles/...010053相关...
  • python 读取word 表格,写入excel

    千次阅读 热门讨论 2019-04-11 21:33:39
    以上word表格汇总为下面的EXCEL表格 用到两个模块,docx,openpyxl 也可以写到csv文件,不过csv文件过长的数字文本会自动转科学计数 excel文件,内容没有转成数字,是默认插入的文本,如果加入判断语句又会有点...
  • 代码用于读Excel中的数据,然后批量写进word,文件的读写有专门的类,对于批量处理excel很有帮助
  • python 读取word表格中的表格## 标题 解决方案: 在网上没有找到可行的嵌套表格内容读取方法。查看python-docx包源代码找到以下两种解决方案: 方案一:按行列读到单元格后再取tables,此处table_cell.tables值为一...
  • 同事最近被安排整理资料,主要工作室将文档中的表格数据提取出来并整理层Excel表格供我们FII刀具...一个Word文档中主要包含了有这么几种类型的内容:paragraph(段落)、table(表格)、character(字符)、image(图片)等...
  • python读取word文档中的表格内容

    万次阅读 多人点赞 2019-07-15 18:26:39
    1. 使用到的库 :docx(python_docx‑0.8.10‑py2.py3‑none‑any.whl) 下载地址:https://download.lfd.uci.edu/pythonlibs/n5jyqt7p/python_docx-0.8.10-py2.py3-none-any.whl 安装方式:pip install python_docx...
  • python读取word表格

    2021-01-12 02:18:11
    python如何获取word文件中... 本文实例讲述了Python实现批量读取word表格信息的方法。分享给大家供大家参考。具体如下: 单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件...
  • pip install python-docx 表格信息 代码 注意读取的EXCEL文件只能是docx后缀的噢~若文件太多可利用以下方法批量转化 import os import docx import xlwt import shutil from win32com import client as wc # 把...
  • doc文件转docx文件 根目录文件自动读取 批量处理word文件中指定关键词后的表格导入excel
  • 我的问题是如何从几百个Word文档里提取我需要的数据汇总到Excel中,Word有很多页,我需要提取第三页的表格里的内容,汇总到Excel做台帐,一个一个手动复制粘贴太浪费时间了! PS:电脑系统还是XP!
  • 今天小编就为大家分享一篇使用python批量读取word文档并整理关键信息到excel表格的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • PythonWord中的内容写入Excel

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,301
精华内容 3,320
关键字:

python读取word表格数据