Python使用Spire.XLS for Python轻松实现Excel转PDF的完整指南

 更新时间:2025年10月31日 14:30:00   作者:咕白m625  
在日常办公和数据处理中,我们经常需要将 Excel 文档转换为 PDF 格式,今天我们将介绍如何使用 Spire.XLS for Python 库来实现 Excel 到 PDF 的高效转换,有需要的可以了解下

在日常办公和数据处理中,我们经常需要将 Excel 文档转换为 PDF 格式。PDF 格式具有跨平台兼容性好、格式固定不易篡改、便于分享和打印等优势,因此成为文档分发的理想选择。今天我们将介绍如何使用 Spire.XLS for Python 库来实现 Excel 到 PDF 的高效转换,涵盖从基础转换到高级设置的全流程。

环境准备与安装

在开始之前,我们需要先用 pip 工具进行安装:

pip install Spire.XLS

免费版 (有限制):

pip install Spire.XLS.Free

基础 Excel 转 PDF 实现

让我们从最基本的转换开始,将整个 Excel 工作簿转换为 PDF 文件:

from spire.xls import *
from spire.xls.common import *

# 加载 Excel
workbook = Workbook()
workbook.LoadFromFile("sample.xlsx")

# 设置工作表自适应页面
workbook.ConverterSetting.SheetFitToPage = True

# 转换为 PDF
workbook.SaveToFile("ToPdf.pdf", FileFormat.PDF)
workbook.Dispose()

这段代码实现了最基本的转换功能,主要包含三个步骤:

  • 创建 Workbook 对象
  • 加载 Excel 文件
  • 保存为 PDF 格式

转换指定工作表

有时我们不需要转换整个工作簿,只需要转换其中的一个或多个工作表。Spire.XLS 提供了灵活的选项来实现这一点:

from spire.xls import *
from spire.xls.common import *

# 加载 Excel
workbook = Workbook()
workbook.LoadFromFile("C:\Users\Administrator\Desktop\input.xlsx")

# 获取指定工作表
sheet = workbook.Worksheets[1]

# 设置工作表自适应页面
workbook.ConverterSetting.SheetFitToPage = True

# 转换为 PDF
sheet.SaveToPdf("WorksheetToPdf.pdf")
workbook.Dispose()

高级 PDF 转换设置

Spire.XLS 提供了丰富的转换选项,让我们可以自定义 PDF 的输出效果。以下是一些常用的高级设置:

设置 PDF 导出参数

  • 页面方向(纵向/横向)
  • 纸张大小(A4/A3)
  • 页边距
  • 是否显示网格线
# 获取 PageSetup 对象
pageSetup = sheet.PageSetup

# 设置页面方向
pageSetup.Orientation = PageOrientationType.Landscape;

# 设置页面大小
pageSetup.PaperSize = PaperSizeType.PaperA4;

# 设置页边距
pageSetup.TopMargin = 0.3
pageSetup.BottomMargin = 0.3
pageSetup.LeftMargin = 0.3
pageSetup.RightMargin = 0.3

# 显示网格线
pageSetup.IsPrintGridlines = true;

批量转换多个 Excel 文件

当需要处理多个 Excel 文件时,我们可以编写批量转换脚本:

import os
from spire.xls import *
from spire.xls.common import *

def batch_excel_to_pdf(input_dir, output_dir):
    """
    批量转换指定目录下的所有 Excel 文件为 PDF
    
    参数:
        input_dir: 包含 Excel 文件的目录
        output_dir: 输出 PDF 文件的目录
    """
    # 确保输出目录存在
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    # 获取目录下所有 Excel 文件
    excel_extensions = ('.xls', '.xlsx', '.xlsm', '.xlsb')
    excel_files = [f for f in os.listdir(input_dir) 
                  if f.lower().endswith(excel_extensions)]
    
    if not excel_files:
        print(f"在 {input_dir} 中未找到 Excel 文件")
        return
    
    workbook = Workbook()
    
    try:
        for i, filename in enumerate(excel_files, 1):
            excel_path = os.path.join(input_dir, filename)
            # 生成输出 PDF 文件名
            pdf_filename = os.path.splitext(filename)[0] + '.pdf'
            pdf_path = os.path.join(output_dir, pdf_filename)
            
            print(f"正在转换 {i}/{len(excel_files)}: {filename}")
            
            # 加载并转换
            workbook.LoadFromFile(excel_path)
            workbook.SaveToFile(pdf_path, FileFormat.PDF)
            
            # 清空工作簿,准备下一个文件
            workbook.Dispose()
            workbook = Workbook()
            
            print(f"已保存: {pdf_filename}")
            
        print(f"批量转换完成,共处理 {len(excel_files)} 个文件")
        
    except Exception as e:
        print(f"转换过程中出错: {str(e)}")
        
    finally:
        workbook.Dispose()

# 使用示例
if __name__ == "__main__":
    input_directory = "需要转换的Excel文件"  # 存放Excel文件的目录
    output_directory = "转换后的PDF文件"    # 输出PDF的目录
    batch_excel_to_pdf(input_directory, output_directory)

总结

Spire.XLS for Python 为 Excel 转 PDF 提供了强大而灵活的解决方案,无论是简单的单文件转换还是复杂的批量处理,都能轻松应对。通过本文介绍的方法,你可以根据实际需求定制转换过程,获得高质量的 PDF 输出。

到此这篇关于Python使用Spire.XLS for Python轻松实现Excel转PDF的完整指南的文章就介绍到这了,更多相关Python Excel转PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • django+celery+RabbitMQ自定义多个消息队列的实现

    django+celery+RabbitMQ自定义多个消息队列的实现

    本文主要介绍了django+celery+RabbitMQ自定义多个消息队列的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python图片缩放cv2.resize()图文详解

    Python图片缩放cv2.resize()图文详解

    这篇文章主要给大家介绍了关于Python图片缩放cv2.resize()的相关资料, resize是opencv库中的一个函数,主要起到对图片进行缩放的作用,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Django后台admin的使用详解

    Django后台admin的使用详解

    这篇文章主要介绍了Django后台admin的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python操作xls使用xlwings代提openpyxl基础

    python操作xls使用xlwings代提openpyxl基础

    这篇文章主要为大家介绍了python操作xls使用xlwings代提openpyxl示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Python中二进制文件内存映射技术的原理与应用详解

    Python中二进制文件内存映射技术的原理与应用详解

    这篇文章将深入探讨Python中内存映射技术的原理、用法和实际应用场景,从基础概念到高级技巧,为读者提供全面的专业指导,下面小编就来和大家详细介绍一下吧
    2025-09-09
  • Python实现输出某区间范围内全部素数的方法

    Python实现输出某区间范围内全部素数的方法

    这篇文章主要介绍了Python实现输出某区间范围内全部素数的方法,涉及Python数值运算、排序、判断等相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • Python编程入门之Hello World的三种实现方式

    Python编程入门之Hello World的三种实现方式

    这篇文章主要介绍了Python编程入门之Hello World的三种实现方式,实例分析了print输出函数的使用及控制台输出的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Python Numpy中ndarray的常见操作

    Python Numpy中ndarray的常见操作

    这篇文章主要介绍了Python Numpy中ndarray的常见操作,NumPy是Python的一种开源的数值计算扩展,更多详细内容需要的朋友可以参考一下
    2022-07-07
  • 分享20个Pandas短小精悍的数据操作

    分享20个Pandas短小精悍的数据操作

    本文为大家整理了一个pandas数据操作的大集合,共20个功能,个个短小精悍,一次让你爱个够,感兴趣的小伙伴快跟随小编一起学习一下吧
    2022-04-04
  • python简单实现9宫格图片实例

    python简单实现9宫格图片实例

    在本篇内容里小编给各位分享的是一篇关于python实现朋友圈中的九宫格图片的实例讲解,有需要的朋友们可以参考下。
    2020-09-09

最新评论