如何用代码合并Excel中PDF路径对应的文件?VBA受阻求Python方案
Python实现对应PDF合并方案
依赖安装
先安装两个必要库:
pip install pandas PyPDF2
核心代码实现
1. 读取Excel路径列表
假设你的Excel文件中,两列分别存储需要配对合并的PDF路径,可选第三列指定输出文件路径。示例代码如下:
import pandas as pd import PyPDF2 import os # 替换为你的Excel文件路径 df = pd.read_excel("your_pdf_list.xlsx") # 遍历每一行的路径对 for index, row in df.iterrows(): # 替换为你Excel中对应的列名 pdf1_path = row["PDF路径1"] pdf2_path = row["PDF路径2"] # 若Excel无输出列,自动生成输出文件名 output_path = row["输出路径"] if "输出路径" in df.columns else f"merged_{index+1}.pdf"
2. 执行PDF合并
在循环内添加合并逻辑,同时做基础的文件存在性校验:
# 检查文件是否存在,避免报错 if not os.path.isfile(pdf1_path) or not os.path.isfile(pdf2_path): print(f"跳过第{index+1}组:{pdf1_path} 或 {pdf2_path} 不存在") continue # 初始化合并器 merger = PyPDF2.PdfMerger() # 添加需要合并的PDF merger.append(pdf1_path) merger.append(pdf2_path) # 写入输出文件 merger.write(output_path) merger.close() print(f"完成合并:{output_path}")
扩展说明
- 如需合并多份对应PDF,只需在循环中依次调用
merger.append()添加更多路径即可 - 若使用相对路径,确保脚本运行目录与PDF文件所在目录一致,或统一使用绝对路径
- 加密PDF无法直接合并,若知道密码可添加
merger.append(pdf_path, password="your_password")解密;无密码则需转成图片后再合并(会丢失文本可编辑性)
内容的提问来源于stack exchange,提问作者Vincent Gonzalez
相关产品推荐
相关产品推荐

