千家信息网

怎么利用Python实现读取Word表格计算汇总并写入Excel

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关怎么利用Python实现读取Word表格计算汇总并写入Excel,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言快过年了
千家信息网最后更新 2026年11月01日怎么利用Python实现读取Word表格计算汇总并写入Excel

这篇文章将为大家详细讲解有关怎么利用Python实现读取Word表格计算汇总并写入Excel,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

前言

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

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

不可否认用Python来实现这样的事情真的是太方便了,人生苦短我用Python。

我是用的python的docx包来处理word,用pandas来处理数据并写入excel

一、首先导入包

pip install docxpip 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文件

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

完整代码

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

完整的代码如下:

import osimport pandas as pdfrom docx import Documentdata=[]#读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#将汇总计算好的数据写入Exceldef write2excle(exclefile,dataframe):    writer = pd.ExcelWriter(exclefile)    dataframe.to_excel(writer)    writer.save()    print('输出成功')if __name__ == '__main__':    readfile('民主评议\\')

python是什么意思

Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。

关于怎么利用Python实现读取Word表格计算汇总并写入Excel就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

评价 数据 文件 表格 评议 计分 优秀 处理 评议表 统计 评分 民主 票数 规则 姓名 序号 评价表 代码 内容 目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技平台互联网 科技互联网政务服务 深圳市运趣互联网科技有限公司 栖莱科技互联网股份有限公司 互联网公司科技股 浙江互联网科技研学营 崇明区互联网教育科技售后服务 996高科技互联网公司 浙南科技城互联网大厦建设工程 迪庆互联网科技招生 互联网科技创新的路径 国大互联网教育科技有限公司薪资 互联网科技快讯热点 信承诺互联网科技有限公司 容联科技互联网电商 湖北辰鑫科技互联网 数字互联网科技有限公司 互联网的科技体现在哪里 恒生科技指数 中概互联网 互联网领先科技成果宣传视频 广东万易互联网科技有限公司惠州分公司 博彦科技互联网金融 美国互联网科技 新华互联网科技2019 互联网科技热点资讯 湖南一路畅行互联网科技 上海钢联属于互联网科技股吗 中国互联网有什么科技 广州百诚互联网科技有限公司官网 陕西九四连强互联网科技有限公司
0