本帖最后由 SuPG 于 2022-8-23 09:20 编辑
自学python,用于办公,由于有大量的可编辑型PDF需要转成EXCEL,因此写了下面这一段!
新手写,请多多包涵:lol
[Python] 纯文本查看 复制代码 import pdfplumber
import os,time
from openpyxl import Workbook
第一步
提取文件夹中所有文件的路径
[Python] 纯文本查看 复制代码 def listdir(path,list_name):
for file in os.listdir(path):
file_path = os.path.join(path,file)#获取该文件夹下所有文件的路径
if os.path.isdir(file_path):#判断是否为文件夹,若是则继续判断该文件夹内是否还含有文件夹,该循环会将全部文件夹都纳入判断范围
listdir(file_path,list_name)
else:
list_name.append(file_path)#将文件的路径都添加到list中
第二步
方法1 识别文件夹下全部PDF,识别内容分别保存到多个工作簿中,保存名称为该PDF的名称。(一个PDF文件对应一个工作簿)
[Python] 纯文本查看 复制代码 def SplitToWorkbook(pdflist_name):
for pdflistname in pdflist_name:
pdf = pdfplumber.open(pdflistname)#打开文件
workbook = Workbook()#启动excel
sheet = workbook.active
for i in range(len(pdf.pages)):#判断页码
firstpagepdf = pdf.pages[i]
table = firstpagepdf.extract_table()#识别表格
try:
for row in table:
sheet.append(row)
except:
pass
if sheet.max_row == 1:
pass
else:
Dirpath = 'A' + str(sheet.max_row + 1) # sheet.max_row的意思是获取最大使用行数
sheet[Dirpath] = pdflistname # 添加路径
workbook.save(filename=(pdflistname.split('.')[0] + '.xlsx'))
方法2 识别文件夹下全部PDF文件,识别内容拆分保存到同一个工作簿的不同工作表(sheet)内。(将参与识别的PDF文件保存成同一工作簿里面的多个独立工作表)
[mw_shl_code=python,true]def SplitToSheet(pdflist_name,dirpath):
workbook = Workbook()
sheet = workbook.active #唤醒表格
for i in range(len(pdflist_name)): #获取文件数,用于后续迭代
pdf = pdfplumber.open(pdflist_name)
if i == 0:
sheet.title = pdflist_name.split('\\')[-1][0:31]
for page in range(len(pdf.pages)): #获取PDF总页数
firstpagepdf = pdf.pages |