【Python】python读取doc、docx文件里的表格内容并存入excel中

效果

先展示下基本的效果,首先我们只有一个doc文件,与python的代码:
在这里插入图片描述
我这里用的是doc的word文档,文档内表格如下:
在这里插入图片描述
通过python读取后打印:在这里插入图片描述
我这里没有专门按照表格内往excel中写,只是随意写了几个数据:
在这里插入图片描述
因为根据需要不同,要写的内容也不同,不过方法是差不多的,就是在读取word时把需要的数据存储下来,在写入表格中的时候填入即可。

程序运行完之后会生产docx文件与xlsx文件:
在这里插入图片描述


代码部分:

首先要先安装相关的模块:
使用docx文件需要加载:

pip install python-docx

使用doc文件需要加载:

pip install pywin32

使用xlsx文件需要加载:

pip install openpyxl

加载模块出现问题,或者超时之类可以参考我这篇文章:更换pip源等

接下来是代码部分,注释也都齐全:

# -*- coding:utf-8 -*-

import os
import docx
from docx import Document #导入库
from win32com.client import Dispatch

'''
获取绝对地址,
如果是doc的转换为docx。
'''
#文件相对路径
file_path = "../TEST.doc"
file_name, file_extension = os.path.splitext(file_path)#获取文件名、文件扩展名
file_abs_path = os.path.abspath(file_path) #通过相对路径获取绝对路径
if file_extension in [".doc"]:
    #打开word应用程序
    wd=Dispatch("Word.application")
    #后台运行
    wd.Visible = 0
    wd.DisplayAlerts = 0
    #打开doc文档,必须给一个绝对路径
    doc=wd.Documents.Open(file_abs_path)
    #另存为docx
    doc.SaveAs(file_abs_path+r"x",12)#12表示docx格式
    #关闭文档
    doc.Close()
    #退出word应用
    wd.Quit()
    file_abs_path = file_abs_path+r"x"#更新路径为docx的路径


'''
读取word的表格内的数据,并按行打印。
'''
word = Document(file_abs_path) #读入文件
tables=word.tables
for i in range(len(tables)):
    tb=tables[i]
    #获取表格的行
    tb_rows=tb.rows
    #读取每一行内容
    for i in range(len(tb_rows)):
        row_data=[]
        row_cells=tb_rows[i].cells
        #读取每一行单元格内容
        for cell in row_cells:
            row_data.append(cell.text)#单元格内容
        print(row_data) #打印整行数据


'''
往excel中填写数据,在读取word时把需要的数据存储下来,
在写入表格中的时候填入即可。
'''
# 导入模块
from openpyxl import  Workbook 
from openpyxl import workbook
from openpyxl import load_workbook
#新建excel
wb = Workbook() # 实例化
ws = wb.active  # 激活 worksheet
###打开已有excel表格
##wb = load_workbook('../TEST.xlsx')
##ws = wb["Sheet1"]
for i in range(1,8,1):
    ws.cell(row=i, column=i, value=10)#row:行    column:列    value:内容
wb.save('../TEST.xlsx')    
print('写入完成!')





需要整个工程的话可以加我公众号来获取:

关注公众号:逸趣汇
微信号:yiquhui666
发送:010703 获取下载链接。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiquhui666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值