You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python将Excel指定工作表批量转换为PDF

Excel指定工作表转PDF实现方案

推荐依赖库

优先选择pywin32(Windows环境),调用本地Microsoft Excel原生接口导出PDF,可100%保留原文件样式,无需额外处理排版规则。
如果需要跨平台(Linux/macOS)运行,可选择调用LibreOffice命令行接口实现,无需依赖微软Office。

具体实现逻辑

  • 第一步:遍历目标目录下的所有待处理Excel文件,匹配每个文件对应的待导出工作表
  • 第二步:调用Excel打开目标文件,根据传入的待转换工作表名选中对应工作表
  • 第三步:调用原生导出方法输出PDF,按「原文件名_工作表名.pdf」的规则命名输出文件
  • 第四步:关闭文件、退出Excel进程,避免后台残留冗余进程

完整代码示例(Windows环境)

首先安装依赖:

pip install pywin32 xlrd

实现代码:

import os
import xlrd
import win32com.client as win32
from win32com.client import constants

# 配置参数
input_dir = "你的Excel文件所在目录路径"
# 可直接对接你现有逻辑获取的文件与待导出工作表映射关系
file_sheet_map = {
    "file1.xls": ["Title"],
    "file2.xls": ["Contents"],
    "file3.xls": ["Summary"]
}

# 初始化Excel应用
excel = win32.gencache.EnsureDispatch('Excel.Application')
# 设为后台运行,不弹出窗口
excel.Visible = False
excel.DisplayAlerts = False

try:
    for filename, required_sheets in file_sheet_map.items():
        file_path = os.path.join(input_dir, filename)
        if not os.path.exists(file_path):
            continue
        
        # 打开Excel工作簿
        wb = excel.Workbooks.Open(os.path.abspath(file_path))
        
        # 遍历待转换的工作表列表,直接对接你获取到的RequiredSheet参数即可
        for sheet_name in required_sheets:
            # 校验工作表是否存在
            if sheet_name not in [sh.Name for sh in wb.Worksheets]:
                continue
            # 选中目标工作表
            ws = wb.Worksheets(sheet_name)
            # 生成输出PDF路径
            pdf_name = f"{os.path.splitext(filename)[0]}_{sheet_name}.pdf"
            pdf_path = os.path.join(input_dir, pdf_name)
            # 导出为PDF
            ws.ExportAsFixedFormat(Type=constants.xlTypePDF, Filename=os.path.abspath(pdf_path))
        
        # 关闭当前工作簿,不保存修改
        wb.Close(SaveChanges=False)
finally:
    # 强制退出Excel进程,避免后台残留
    excel.Quit()
    # 释放COM对象
    del excel

跨平台实现说明

如果需要在非Windows环境运行,可安装LibreOffice后,通过Python调用子进程执行转换命令,示例命令如下:

libreoffice --headless --convert-to pdf --outdir 输出目录路径 --worksheet 工作表名 输入Excel文件路径

使用subprocess模块调用上述命令即可完成转换,适配规则和文件名逻辑可复用上面的实现。

内容的提问来源于stack exchange,提问作者Python

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:18:04