如银行流水,银行提供时可能将很多人的流水放在同一个pdf中,但相对某一个人的流水,页码是连续的,所以如果仅需要提取某个人的流水,则只需要将一定范围内的页码内容提取出来即可。
import pdfplumber
import pandas as pd
def extract_tables_to_excel(pdf_path, start_page, end_page):
all_data = []
with pdfplumber.open(pdf_path) as pdf:
for page_num in range(start_page, end_page + 1):
page = pdf.pages[page_num - 1]
tables = page.extract_tables()
if tables:
for table in tables:
all_data.extend([row for row in table[:]])
# 将合并后的数据转换为 DataFrame 并保存到 Excel
df = pd.DataFrame(all_data)
df.to_excel(f"第{start_page}_{end_page}页.xlsx", index=False, header=False)
# 指定 PDF 文件路径和页面范围
pdf_path = r"D:\100-工作资料\批量查询结果_202405161715845991898.pdf"
start_page = 200
end_page = 300
extract_tables_to_excel(pdf_path, start_page, end_page)