猫目男
2022-03-12 07:37
采纳率: 100%
浏览 43
已结题

python openpyxl 如何将每个word中提取的数据 一行一行导入到excel中

代码如下,我需要将 第一份文件中的“品名” 和 “j” 放到excel的A1、B1单元格,然后第二份文件中的“品名” 和 “j” 放到A2,B2单元格,以此类推,然而现在每行只会重复第一个文件的“品名” 和 “j” 。

用到的库:openpyxl、docx
python版本:3.8

import docx
import os
import openpyxl as vb
from docx import *

P = 0

for 文件夹路径, 子文件夹路径, 文件列表 in os.walk('这里填入文件夹地址'):
    for i in 文件列表:
        # print(文件夹路径 + "/" + i)
        h = (文件夹路径 + "/" + i)
        P += 1                 #这一段之前是为了拿到每个文件的路径,然后依次打开

        document = Document(h)  # 打开每个文件
        y = len(document.paragraphs)  # 查询每个文件有几个段落
        print('总段落为:' + str(y))

        for o in range(30, y):  # 从第十行开始直到最后一行找出 含有“正式文件” 和 “审批意见”中间的段落数
            T = document.paragraphs[o].text
            if "正式文件" in T:
                # print(T)
                a = o
                print('正式文件在第:' + str(a) + '段')
                a = a + 1
            if "审批意见" in T:
                b = o
                print('审批意见在第:' + str(b) + '段')

                table1 = document.tables[0]
                品名 = table1.cell(0, 1).text
                print(品名)    #拿到每个文件的品名
                j = []
                for g in range(a, b):  
                    k = document.paragraphs[g].text   #拿到 “正式文件” 和 “审批意见”中间的段落
                    j.append(k)    #内容较多,将j添加到list
                print(j)
  
        # 打开excel ,就是下面这块出现了问题
        # 无法将每个文件的内容依次填入每行的第一个单元格和第二个单元格,希望热心网友帮忙解决!


        路径 = '这里填入xlsx的空白excel文件地址'
        工作簿 = vb.load_workbook(路径)
        工作表 = 工作簿['Sheet1']
        u = len(文件列表)
        print(u)

        forin range(1, u + 1):
            品名 = 工作表.cell(行, 1).value    #品名填入每行的第一个单元格
            列表 = 工作表.cell(行, 2).value    # “j”  填入每行的第二个单元格
            行 = 行 + 1
        工作簿.save(路径)

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题