【问题标题】:Problem with set values on excel file with PyPDF2 and Openpyxl使用 PyPDF2 和 Openpyxl 在 excel 文件上设置值的问题
【发布时间】:2021-01-19 21:02:55
【问题描述】:

我有下一个代码:

import PyPDF2
import openpyxl
from openpyxl import Workbook
from openpyxl import load_workbook
from openpyxl.worksheet.cell_range import CellRange

#Definir Archivo Excel
file = 'C:\\Users\\Desktop\\PYTHON_PDF\\PRUEBA_PDF.xlsx'
wb = openpyxl.load_workbook(file)#define workook
ws = wb['Hoja1']#define sheet1
#define max values for columns
max_row_for_a = max((a.row for a in ws['A'] if a.value is not None))
max_row_for_b = max((b.row for b in ws['B'] if b.value is not None))

#LOOP
for row in ws.iter_rows(min_row=2, max_col=1, max_row=max_row_for_a):
    pdf=  row[0].value
    print (pdf)
    for row2 in ws.iter_rows(min_row=2, max_col=2, max_row=max_row_for_b, min_col=2):
        extracto = row2[0].value
        pdfselect=open(pdf,"rb")
        leer = PyPDF2.PdfFileReader(pdfselect)
        pagina = leer.getPage(0)  
        extracto =  pagina.extractText()
        print(extracto)
        wb.save("PRUEBA_PDF2.xlsx")
        wb.close

这个想法是用 pdf 的名称读取 excel 的 A 列,并在 B 列中写入 pdf 提取的内容,但是当我执行代码时不显示任何内容,甚至不显示错误。我尝试使用这样的最小案例,但没有问题:

#pdfselect=open("ejemplo.pdf","rb")
#leer = PyPDF2.PdfFileReader(pdfselect)
#pagina = leer.getPage(0)   
#sheet =   wb.active 
#ws['B2'] = pagina.extractText()
#wb.save("PRUEBA_PDF2.xlsx")
#wb.close

我做错了什么? 问候!

【问题讨论】:

    标签: python excel pdf openpyxl pypdf2


    【解决方案1】:

    我发现了问题。正确的代码一定是这样的:

    import PyPDF2
    import openpyxl
    from openpyxl import Workbook
    from openpyxl import load_workbook
    from openpyxl.worksheet.cell_range import CellRange
    
    #Definir Archivo Excel
    
    file = 'C:\\Users\\lorrego\\Desktop\\PYTHON_PDF\\PRUEBA_PDF.xlsx'
    wb = openpyxl.load_workbook(file)#define workook
    ws = wb['Hoja1']#define la hoja 1
    max_row_for_a = max((a.row for a in ws['A'] if a.value is not None))
    
    
    
    for row in ws.iter_rows(min_row=2, max_col=2, max_row=max_row_for_a):
    
        pdf=  row[0].value  
        pdfselected=open(pdf,"rb")
        leer = PyPDF2.PdfFileReader(pdfselected)
        pagina = leer.getPage(0)  
        ws.cell(row=row[0].row, column=2).value = pagina.extractText()
        wb.save("C:\\Users\\Desktop\\PYTHON_PDF\\PRUEBA_PDF.xlsx")
        wb.close
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 2020-06-05
      相关资源
      最近更新 更多