当前位置:网站首页>批量读取word docx文件指定表格内容,保存在excel文件中

批量读取word docx文件指定表格内容,保存在excel文件中

2022-08-09 12:11:00 Newnotes

第一,将DOC文件转换为DOCX文件

第二,将DOCX文中表格内容进行读取并保存

*发文的时候,发文助手说:“此文章质量较低,不会获得较多流量扶持! 可能的原因为:篇幅太短,广告涉嫌违规,外链过多,缺少代码,图片涉嫌违规。”

*发文的时候,发文助手说:“此文章质量较低,不会获得较多流量扶持! 可能的原因为:篇幅太短,广告涉嫌违规,外链过多,缺少代码,图片涉嫌违规。”

*发文的时候,发文助手说:“此文章质量较低,不会获得较多流量扶持! 可能的原因为:篇幅太短,广告涉嫌违规,外链过多,缺少代码,图片涉嫌违规。”

*发文的时候,发文助手说:“此文章质量较低,不会获得较多流量扶持! 可能的原因为:篇幅太短,广告涉嫌违规,外链过多,缺少代码,图片涉嫌违规。”

*发文的时候,发文助手说:“此文章质量较低,不会获得较多流量扶持! 可能的原因为:篇幅太短,广告涉嫌违规,外链过多,缺少代码,图片涉嫌违规。”

*发文的时候,发文助手说:“此文章质量较低,不会获得较多流量扶持! 可能的原因为:篇幅太短,广告涉嫌违规,外链过多,缺少代码,图片涉嫌违规。”

*发文的时候,发文助手说:“此文章质量较低,不会获得较多流量扶持! 可能的原因为:篇幅太短,广告涉嫌违规,外链过多,缺少代码,图片涉嫌违规。”

*发文的时候,发文助手说:“此文章质量较低,不会获得较多流量扶持! 可能的原因为:篇幅太短,广告涉嫌违规,外链过多,缺少代码,图片涉嫌违规。”

*发文的时候,发文助手说:“此文章质量较低,不会获得较多流量扶持! 可能的原因为:篇幅太短,广告涉嫌违规,外链过多,缺少代码,图片涉嫌违规。”

import os
from win32com import client as wc
from win32com import *
import win32com.client
word = wc.Dispatch('Word.Application')
# 将docx文件保存的路径
docxPath = 'C:\\Users\\Administrator\\PycharmProjects\\pythonProject'
# doc文件路径
path = "C:\\Users\\Administrator\\Desktop\\重污染天气企业排污许可副本\\重污染天气企业排污许可副本"
'''
获取doc文件名,创建docx文件路径
'''

def getFileName(path):
    filesList = []
    for root, dirs, files in os.walk(path):
        isExists = os.path.exists(docxPath)
        # 新建docx文件夹
        if not isExists:
            os.makedirs(docxPath)
        for file in files:
            # 判断尾缀是不是doc
            suffix = file.split('.')[1]
            if suffix == 'doc':
                filesList.append(file)
        print(filesList)
        return filesList


'''
将doc文件转换成docx文件
'''


def docToDocx(fileNameList):
    try:
        for fileName in fileNameList:
            print("开始处理     文件名:" + fileName)
            doc = word.Documents.Open(path + '\\' + fileName)
            # [:-4]的意思是选这个字符串从开始到最后倒数第4位(不含)
            docxNamePath = docxPath + '\\' + fileName[:-4] + '.docx'
            print('转换完成!' + docxNamePath)
            doc.SaveAs(docxNamePath, 12, False, "", True, "", False, False, False, False)

    finally:
        # 一定要记得关闭docx,否则会出现文件占用
        doc.Close()


try:
    fileNameList = getFileName(path)
    docToDocx(fileNameList)
finally:
    word.Quit()
from docx import Document
import os
import openpyxl
from openpyxl import Workbook
#  定义指定路径 , 或者自己输入
path = 'C:\\Users\\Administrator\\PycharmProjects\\pythonProject'
# path = input("请输入路径:")
# 新建文件
vv=[]
def excelsave():
    workbook = openpyxl.Workbook()
    biaoti = [['企业名称', '经度', '纬度']]
    wb = Workbook()
    wb1 = wb.create_sheet('index', 0)
    wb1.title = '管理数据'
    filename = 'a.xlsx'
    for row2 in range(len(biaoti)):
        wb1.append(biaoti[row2])
    for row in range(len(vv)):
        wb1.append(vv[row])
    # wb.save("paiwuxukejianyiguanli.xlsx")
    wb.save(filename)
def read(path):
    for i in os.listdir(path):
        fi_d = os.path.join(path, i)
        if os.path.isdir(fi_d):
            read(fi_d)
        else:
            if os.path.splitext(i)[1]=='.docx':
               filename=(os.path.join(fi_d))
               if filename==r"C:\Users\Administrator\PycharmProjects\pythonProject\venv\Lib\site-packages\docx\templates\default.docx":
                   print("已经扫描完成,现在要退出了。。。。。。。。。。。。。。。。。")
                   return
               print(filename)
               doc = Document(filename)
               tables = doc.tables  # 获取文档中所有表格对象的列表
               print('表格数量', len(tables))
               print('------------------------')
               qiye = doc.tables[0].rows[0].cells[1]  # 获取第一张表第一行第一列数据
               jingdu=doc.tables[0].rows[3].cells[1]
               weidu=doc.tables[0].rows[3].cells[4]
               vv.append([qiye.text,jingdu.text,weidu.text])
               print('------------------------')


read(path)
# 打印所有docx的绝对路径
print(vv)
excelsave()

# input("sorry")

#
#
# # Document 类,不仅可以新建word文档,也可以打开一个本地文档
# doc = Document('C:\\Users\\Administrator\\PycharmProjects\\pythonProject\\副本.docx')  # 想获取的文档文件名,这里是相对路径。
# tables = doc.tables # 获取文档中所有表格对象的列表
# print('表格数量',len(tables))
# print('------------------------')    读取所有表格内容
# # for t in tables:
# #     print(t)
# #     rows=t.rows#行数 obj
# #     columns=t.columns#列数 obj
# #     rows_length = len(t.rows)  # 行数
# #     columns_length = len(t.columns)  # 列数
# #     for r_num in range(rows_length):#行遍历
# #         r_content = []
# #         for r_cell in rows[r_num].cells:
# #             r_content.append(r_cell.text)
# #         print(r_content)

原网站

版权声明
本文为[Newnotes]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Newnotes/article/details/125973465