博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用python读取word,写入execl
阅读量:6851 次
发布时间:2019-06-26

本文共 1924 字,大约阅读时间需要 6 分钟。

word里面有2张表,需要找到第二张表,并写入execl中:

代码如下:

#coding:utf-8import osfrom docx import Documentimport win32comfrom win32com.client import Dispatch, constantsdef parse_docx(f,title):    d = Document(f)    for t in d.tables:        '''获取需要的表'''        tbTitle = t.cell(0, 0).text        if title == tbTitle:            tableInfo = []            columnLen = len(t.columns)            rowLen = len(t.rows)            for i in range(0,columnLen):                tmp = []                for row in t.rows:                    tmp.append(row.cells[i].text)                #删除第一个元素->表名                del(tmp[0])                tableInfo.append(tmp)            #返回的后两个参数表示tableInfo表的行数和列数            return [tbTitle,tableInfo,rowLen-1,columnLen]    return Nonedef writeExecl(fileName,sheet,tableInfo):    excel = win32com.client.Dispatch('Excel.Application')    excel.Visible=0    excel.DisplayAlerts=0    #对传入文件名的处理    if fileName:        if os.path.exists(fileName):            workbook = excel.Workbooks.Open(fileName)        else:            workbook = excel.Workbooks.Add()            workbook.SaveAs(fileName)    else:        workbook = excel.Workbooks.Add()    try:        sht = workbook.Worksheets(sheet)    except:        sheetNew = workbook.Worksheets.Add()        sheetNew.Name =sheet        sheetNew.Activate()        sht = workbook.Worksheets(sheet)    #execl表格是从1开始的    sht.Cells(1, 1).Value = tableInfo[0]    #把tableInfo看作是一行数据,依次赋值    for i in range(0,tableInfo[3]):        for j in range(0,tableInfo[2]):            sht.Cells(j+2, i+1).Value = tableInfo[1][i][j]    workbook.Save()    excel.Application.Quit()if __name__ == "__main__":    docxFile = "123.docx"    execlFile = "roro.xlsx"    sheet = "roro"    tableName = "内科"    #读取word中tableName的内容    tableInfo = parse_docx(docxFile,tableName)    #处理execl    writeExecl(execlFile,sheet,tableInfo)

 

 运行后生成文件 roro.xlsx,内容如下:

 

转载于:https://www.cnblogs.com/charlieroro/p/8490560.html

你可能感兴趣的文章
Excel数据筛选出来后修改再粘贴进去的方法
查看>>
STM32F4的sct文件理解
查看>>
复制目录结构
查看>>
第 1 章 虚拟化 - 008 - LVM 类型的 Storage Pool
查看>>
PowerPoint 2007 如何把背景音乐嵌入到PPt文件当中
查看>>
手动安装linux操作系统
查看>>
[学习windows/记录篇]站点之间建立***
查看>>
Hbase权限配置以及使用手册
查看>>
vertical-align,text-align 和 align的区别
查看>>
Unity3d多线程
查看>>
炉石传说 C# 开发笔记 (源代码整理公开)
查看>>
前端文摘:Web 开发模式演变历史和趋势
查看>>
最大子数组和问题的解
查看>>
cout设置输出数据不显示科学计数法
查看>>
zoj 1659 Mobile Phone Coverage(矩形面积并)
查看>>
python学习 day3
查看>>
Centos 6.4下用Squid配置反向代理多个内网WEB服务器
查看>>
王者荣耀之父姚晓光“奇葩”的工作理念
查看>>
Flask 信号
查看>>
Extjs checkbox数值回显
查看>>