Python Excel XLS或XLSX转PDF详解:七大实用转换设置

news2024/12/22 17:23:19

目录

使用工具

Python将Excel文件转换为PDF

Python将Excel文件转换为带页码的PDF

Python将Excel文件转换为特定页面尺寸的PDF

Python将Excel文件转换为PDF并将内容适应到一页

Python将Excel文件转换为PDF/A

Python将Excel文件中的工作表转换为单独的PDF

Python将Excel工作表中的特定单元格区域转换为PDF

转换过程中可能遇到的问题及解决方案

总结


Python Excel转PDF

在日常工作中,我们常常需要将 Excel 文件转换成 PDF 格式以便共享或打印。相比于 Excel 文件,PDF 格式具备更好的兼容性和安全性,能确保数据内容和排版不变。在本篇博客中,我们将探讨如何使用Python以编程方式将Excel XLS或XLSX文件转换为PDF,内容涵盖从基础转换到高级设置的多种方法,以满足各种使用场景的需求。此外还介绍了转换过程中可能遇到的问题及解决方案。

  • 将Excel文件转换为PDF
  • 将Excel文件转换为带页码的PDF
  • 将Excel文件转换为特定页面尺寸的PDF
  • 将Excel文件转换为PDF并将内容适应到一页
  • 将Excel文件转换为PDF/A
  • 将Excel文件中的工作表转换为单独的PDF
  • 将Excel工作表中的特定单元格区域转换为PDF
  • 转换过程中可能遇到的问题及解决方案

使用工具

要在Python中实现Excel转PDF,首先需要安装Excel文件处理库。本文所使用的库是Spire.XLS for Python,它可以通过以下pip命令进行安装:

pip install Spire.XLS

Python将Excel文件转换为PDF

将Excel文件转换到PDF的过程比较简单,只需要三个步骤:

  • 创建Workbook类的对象。
  • 使用Workbook.LoadFromFile()方法打开Excel XLS或XLSX文件。
  • 使用Workbook.SaveToFile()方法将Excel文件保存为PDF。

实现代码:

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

# 打开Excel XLS或XLSX文件
workbook = Workbook()
workbook.LoadFromFile("测试.xlsx")
# workbook.LoadFromFile("测试.xls")

# 将Excel文件转换为PDF格式
workbook.SaveToFile("Excel转PDF.pdf", FileFormat.PDF)
workbook.Dispose()

Python将Excel文件转换为带页码的PDF

对于内容较长的文档,添加页码可以显著提高导航和可读性。将Excel文件转换为带页码的PDF不仅能帮助读者快速找到所需信息,还能使文档看起来更为专业。

下面是将Excel文件转换为带页码的PDF的具体步骤:

  • 创建Workbook类的对象。
  • 使用Workbook.LoadFromFile()方法打开Excel XLS或XLSX文件。
  • 循环遍历Excel文件中的工作表,并使用Worksheet.PageSetup.CenterFooter属性在每个工作表的页脚中间位置插入页码。
  • 使用Workbook.SaveToFile()方法将Excel文件保存为带页码的PDF。

实现代码:

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

# 打开Excel XLS或XLSX文件
workbook = Workbook()
workbook.LoadFromFile("测试.xlsx")

# 遍历文件中的每个工作表
for sheet in workbook.Worksheets:
    # 在每个工作表的页脚中间位置插入页码,格式为 “第X页,共Y页”
    sheet.PageSetup.CenterFooter = "第 &P 页,共 &N 页"    

# 将Excel文件转换为带页码的PDF格式
workbook.SaveToFile("Excel转换为带页码的PDF.pdf", FileFormat.PDF)
workbook.Dispose()

Python将Excel文件转换为特定页面尺寸的PDF

在某些情况下,用户可能需要将Excel文件转换为具有特定页面尺寸的PDF,以满足打印或展示的要求。

在Spire.XLS for Python中,我们可以通过两种方式设置工作表的页面尺寸:

  • 标准页面尺寸:使用Worksheet.PageSetup.PaperSize属性选择预定义的页面尺寸(如A4、A3等)。
  • 自定义页面尺寸:使用Worksheet.PageSetup.SetCustomPaperSize()方法自定义页面尺寸;在该方法中,我们可以手动指定页面的宽度和高度。

下面是将Excel文件转换为特定页面尺寸的PDF的实现代码:

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

# 打开Excel文件
workbook = Workbook()
workbook.LoadFromFile("测试.xlsx")

# 遍历文件中的每个工作表
for sheet in workbook.Worksheets:
    # 将每个工作表的页面尺寸设置为A3标准页面尺寸
    sheet.PageSetup.PaperSize = PaperSizeType.PaperA3  
    # 或将每个工作表的页面尺寸设置为自定义页面尺寸
    # sheet.PageSetup.SetCustomPaperSize(500, 500)  

# 将Excel文件转换为PDF格式
workbook.SaveToFile("Excel转换为特定页面尺寸的PDF.pdf", FileFormat.PDF)
workbook.Dispose()

Python将Excel文件转换为PDF并将内容适应到一页

将Excel文件转换为PDF并确保内容适应到一页是处理大型电子表格时的理想选择。这种方法可以有效地缩放数据,以避免信息分布在多页上,从而提高可读性和整洁度。

通过Worksheet.PageSetup.FitToPagesTallWorksheet.PageSetup.FitToPagesWide属性,我们可以将Excel工作表的内容适应到1页高度和1页宽度。

实现代码:

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

# 打开Excel文件
workbook = Workbook()
workbook.LoadFromFile("测试.xlsx")

# 遍历文件中的每个工作表
for sheet in workbook.Worksheets:
    # 将工作表内容适应1页高度
    sheet.PageSetup.FitToPagesTall = 1
    # 将工作表内容适应1页宽度
    sheet.PageSetup.FitToPagesWide = 1   

# 将Excel文件转换为PDF格式
workbook.SaveToFile("Excel转PDF并适应页面.pdf", FileFormat.PDF)
workbook.Dispose()

Python将Excel文件转换为PDF/A

PDF/A是一种专为长期存档设计的PDF格式,确保文档在未来的可读性和完整性。将Excel文件转换为PDF/A能够满足行业标准,确保文件中嵌入的字体、元数据和数字签名等信息得到妥善保存。这对于需要遵循严格合规性的行业尤为重要,如金融和法律领域。

使用Spire.XLS for Python,我们可以将Excel文件转换为多种PDF/A格式,包括:

  • PDF/A-1a
  • PDF/A-1b
  • PDF/A-2a
  • PDF/A-2b
  • PDF/A-3a
  • PDF/A-3b

下面是将Excel文件转换为PDF/A-1a格式的实现代码:

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

# 打开Excel文件
workbook = Workbook()
workbook.LoadFromFile("测试.xlsx")

# 指定PDF/A标准为PDF/A-1a
workbook.ConverterSetting.PdfConformanceLevel = PdfConformanceLevel.Pdf_A1A

# 将Excel文件转换为PDF/A-1a格式
workbook.SaveToFile("Excel转换PDFA.pdf", FileFormat.PDF)
workbook.Dispose()

Python将Excel文件中的工作表转换为单独的PDF

在需要单独分享Excel文件的每个工作表时,将它们转换为单独的PDF文件是一种有效的解决方案。

使用Spire.XLS for Python提供的Worksheet.SaveToPdf()方法,我们可以将Excel文件的工作表转换为单独的PDF文件。

实现代码:

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

# 打开Excel文件
workbook = Workbook()
workbook.LoadFromFile("测试.xlsx")

# 遍历文件中的工作表
for sheet in workbook.Worksheets:
    fileName =  sheet.Name + ".pdf"
    # 将每个工作表保存为单独的PDF
    sheet.SaveToPdf(fileName)
workbook.Dispose()

Python将Excel工作表中的特定单元格区域转换为PDF

有时,用户可能只希望将Excel工作表中的特定单元格区域转换为PDF,而不是整个工作表。这种选项允许用户精确控制所共享或打印的数据,确保只包含最相关的信息。通过定义打印区域,用户可以轻松生成仅包含所需数据的PDF文档,提升文件的专业性和针对性。

通过Worksheet.PageSetup.PrintArea属性,我们可以控制需要转换为PDF的单元格区域。

实现代码:

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

# 打开Excel文件
workbook = Workbook()
workbook.LoadFromFile("测试.xlsx")

# 获取第一个工作表
worksheet = workbook.Worksheets[0]

# 指定需要转换的单元格区域
worksheet.PageSetup.PrintArea = "A1:C5"

# 将指定的单元格区域保存为PDF
worksheet.SaveToPdf("单元格区域转PDF.pdf")
workbook.Dispose()

转换过程中可能遇到的问题及解决方案

Spire.XLS在转换时会在系统中查找Excel文档中所使用的字体来绘制PDF。如果没有找到一样的字体,则会使用近似字体进行绘制。如果近似字体也没有,则可能会抛出字体缺失异常。因此,如果 PDF 字体显示异常,或出现缺少字体错误,我们需要检查系统中是否安装了Excel文档中所使用的字体。如果不想安装字体,可以将字体文件放在一个具有访问权限的文件夹下,然后通过代码指定字体文件夹的路径:

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

# 打开Excel文件
workbook = Workbook()
workbook.LoadFromFile("测试.xlsx")

# 指定字体文件夹的路径
workbook.CustomFontFileDirectory= [("Fonts/")]

# 将Excel文件转换为PDF
workbook.SaveToFile("Excel转PDF指定字体路径", FileFormat.PDF)
workbook.Dispose()

总结

由于篇幅有限,本文仅介绍了七种转换设置。实际上,还有许多其他选项可供选择,例如调整或删除Excel工作表的页边距(如worksheet.PageSetup.LeftMargin = 0),以改变PDF页面边缘的空白区域宽度。

本文完结。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2240802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Centos 7 安装wget

Centos 7 安装wget 最小化安装Centos 7 的话需要上传wget rpm包之后再路径下安装一下。rpm包下载地址(http://mirrors.163.com/centos/7/os/x86_64/Packages/) 1、使用X-ftp 或者WinSCP等可以连接上传的软件都可以首先连接服务器,这里我用的…

LabVIEW 使用 Snippet

在 LabVIEW 中,Snippet(代码片段) 是一个非常有用的功能,它允许你将 一小段可重用的代码 保存为一个 图形化的代码片段,并能够在不同的 VI 中通过拖放来使用。 什么是 Snippet? Snippet 就是 LabVIEW 中的…

A3超级计算机虚拟机,为大型语言模型LLM和AIGC提供强大算力支持

热门大语言模型项目地址:www.suanjiayun.com/mirrorDetails?id66ac7d478099315577961758 近几个月来,我们目睹了大型语言模型(LLMs)和生成式人工智能强势闯入我们的视野,显然,这些模型在训练和运行时需要…

开源音乐分离器Audio Decomposition:可实现盲源音频分离,无需外部乐器分离库,从头开始制作。将音乐转换为五线谱的程序

今天给大家分析一个音频分解器,通过傅里叶变换和信封匹配分离音乐中的各个音符和乐器,实现音乐到乐谱的转换。将音乐开源分离为组成乐器。该方式是盲源分离,从头开始制作,无需外部乐器分离库。 相关链接 代码:https:…

35.3K+ Star!PhotoPrism:一款基于AI的开源照片管理工具

PhotoPrism 简介 PhotoPrism[1] 是一个为去中心化网络设计的AI照片应用,它利用最新技术自动标记和查找图片,实现自动图像分类与本地化部署,你可以在家中、私有服务器或云端运行它。 项目特点 主要特点 浏览所有照片和视频,无需担心RAW转换、重复项或视频格式。 使用强大的…

基于Spider异步爬虫框架+JS动态参数逆向+隧道代理+自定义中间件的猎聘招聘数据爬取

在本篇博客中,我们将介绍如何使用 Scrapy 框架结合 JS 逆向技术、代理服务器和自定义中间件,来爬取猎聘网站的招聘数据。猎聘是一个国内知名的招聘平台,提供了大量的企业招聘信息和职位信息。本项目的目标是抓取指定城市的招聘信息&#xff0…

计算机网络 (2)计算机网络的类别

计算机网络的类别繁多,根据不同的分类原则,可以得到各种不同类型的计算机网络。 一、按覆盖范围分类 局域网(LAN): 定义:局域网是一种在小区域内使用的,由多台计算机组成的网络。覆盖范围&#…

超好用shell脚本NuShell mac安装

利用管道控制任意系统 Nu 可以在 Linux、macOS 和 Windows 上运行。一次学习,处处可用。 一切皆数据 Nu 管道使用结构化数据,你可以用同样的方式安全地选择,过滤和排序。停止解析字符串,开始解决问题。 强大的插件系统 具备强…

【C#设计模式(9)——组合模式(Component Pattern)】

前言 组合模型是将对象组合成树形结构以表示“整体-部分”的层次结构,使客户终端代码更加简洁和灵活。 代码 //目录抽象类 public abstract class Directory {protected string _name;public Directory(string name){_name name;}public abstract void Show(); } …

Ubuntu下Xshell连接腾讯云服务器

1.在腾讯云上买好服务器后,找到控制台,找到自己的服务器重置密码,默认用户名时ubuntu 2.在Xshell连接服务器 然后出现一个秘钥接受,直接接受就好了,然后就出现下面 然后就可以了 查看当前登录的用户 whoami 查看当前服…

初识算法 · 位运算(3)

目录 前言: 两整数之和 题目解析 算法原理 算法编写 只出现一次的数字II 题目解析 算法原理 算法编写 前言: ​本文的主题是位运算,通过两道题目讲解,一道是只出现一次的数字II,一道是两整数之和。 链接分别…

微信小程序——01开发前的准备和开发工具

文章目录 一、开发前的准备1注册小程序账号2安装开发者工具 二、开发者工具的使用1创建项目2 工具的使用3目录结构4各个页面之间的关系5 权限管理6提交审核和发布 一、开发前的准备 开发前需要进行以下准备: 1 注册小程序账号2激活邮箱3 信息登记4 登录小程序管理后…

使用热冻结数据层生命周期优化在 Elastic Cloud 中存储日志的成本

作者:来自 Elastic Jonathan Simon 收集数据对于可观察性和安全性至关重要,而确保数据能够快速搜索且获得低延迟结果对于有效管理和保护应用程序和基础设施至关重要。但是,存储所有这些数据会产生持续的存储成本,这为节省成本创造…

记录配置ubuntu18.04下运行ORBSLAM3的ros接口的过程及执行单目imu模式遇到的问题(详细说明防止忘记)

今天的工作需要自己录制的数据集来验证昨天的标定结果 用ORBSLAM3单目imu模式运行,mentor给的是一个rosbag格式的数据包,配置过程出了几个问题记录一下,沿配置流程写。 一.orbslam3编译安装 1.首先是安装各种依赖 这里不再赘述&#xff0…

vue2项目启用tailwindcss - 开启class=“w-[190px] mr-[20px]“ - 修复tailwindcss无效的问题

效果图 步骤 停止编译"npm run dev"安装依赖 npm install -D tailwindcssnpm:tailwindcss/postcss7-compat postcss^7 autoprefixer^9 创建文件/src/assets/tailwindcss.css,写入内容: tailwind base; tailwind components; tailwind utiliti…

实施工程师简历「精选篇」

【#实施工程师简历#】一份出色的实施工程师简历,是获得优质工作机会的重要跳板。那么,如何打造一份令人眼前一亮的实施工程师简历呢?以下是幻主简历网整理的实施工程师简历「精选篇」,欢迎大家阅读收藏! 实施工程师简历…

Linux篇(权限管理命令)

目录 一、权限概述 1. 什么是权限 2. 为什么要设置权限 3. Linux中的权限类别 4. Linux中文件所有者 4.1. 所有者分类 4.2. 所有者的表示方法 属主权限 属组权限 其他权限 root用户(超级管理员) 二、普通权限管理 1. ls查看文件权限 2. 文件…

惊爆!72.1K star 的 Netdata:实时监控与可视化的超炫神器!

在当今复杂的 IT 环境中,实时监控与可视化对于保障系统的稳定运行和性能优化至关重要。 无论是服务器、应用程序,还是网络设备,及时获取性能数据能够帮助我们快速定位问题、优化资源配置。 Netdata,作为一个开源的实时监控工具&a…

姓名改成商标名称,李子柒已成身份证名字!

近日李子柒紫气东来,以中国非物质文化遗产“漆器”生动地展现了中国漆器的独特美学和工艺之美,这条视频在微博已超过1.3亿观看,在国外视频平台订阅超二千万粉丝成海外中文创作第一人。 李子柒原名李佳佳,在网上看到她已经正式将身…

论云游戏的性能与性价比,ToDesk、青椒云、顺网云游戏等具体实操看这篇就够了

文章目录 一、前言二、云电脑产品基础介绍2.1 ToDesk云电脑2.1.1 ToDesk云电脑硬件参数2.1.2 ToDesk云电脑鲁大师跑分2.1.3 ToDesk云电脑收费方式2.1.4 ToDesk云电脑特色功能 2.2 青椒云2.2.1 青椒云游戏娱乐硬件配置2.2.2 青椒云云电脑鲁大师跑分2.2.3 青椒云收费方式2.2.4 青…