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

目录

使用工具

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"# 将每个工作表保存为单独的PDFsheet.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指定字体路径.pdf”, FileFormat.PDF)
workbook.Dispose()

总结

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

本文完结。

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

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

相关文章

Linux网络——网络初识

目录 1. 认识协议 2. 协议的分层 3. OSI 七层模型 && TCP/IP 五层(四层)模型 4. 网络传输的基本流程 5. 以太网的通信原理 6. 数据的跨网络传播 7. 认识 IP 地址 ① IP 是什么 ② IP 与 MAC 的关系 ③ 为什么需要 IP 在谈及网络之前,我们要先对学…

RedHat7—Linux中kickstart自动安装脚本制作

本实验使用虚拟机版本为rhel7,从rhel7后的版本kickstart工具进行收费使用。 1.在VMware关闭dhcp自动获取ip地址功能 2.安装并启动httpd [rootlocalhost ~]# yum install httpd [rootlocalhost ~]# systemctl start httpd [rootlocalhost ~]#systemctl stop firewal…

基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络

一、介绍 垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集(‘塑料’, ‘玻璃’, ‘纸张’, ‘纸板’, ‘金属’),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进…

OMV7 树莓派 tf卡安装

​ 升级7之后,问题多多,不是docker不行了,就是代理不好使 今天又重装了一遍,用官方的链接,重新再折腾一遍…… 使用raspberry pi imager安装最新版lite OS。 注意是无桌面 Lite版 配置好树莓派初始化设置&#xff0…

前端无感刷新token

摘要: Axios 无感知刷新令牌是一种在前端应用中实现自动刷新访问令牌(access token)的技术,确保用户在进行 API 请求时不会因为令牌过期而中断操作 目录概览 XMLHttpRequestAxiosFetch APIJQuni.request注意事项: 访问…

STM32 独立看门狗(IWDG)详解

目录 一、引言 二、独立看门狗的作用 三、独立看门狗的工作原理 1.时钟源 2.计数器 3.喂狗操作 4.超时时间计算 5.复位机制 四、独立看门狗相关寄存器 1.键寄存器(IWDG_KR) 2.预分频寄存器(IWDG_PR) 3.重载寄存器&…

RHCE的练习(12)

写一个脚本,完成以下要求: 给定一个用户: 如果其UID为0,就显示此为管理员;否则,就显示其为普通用户; #!/bin/bash ​ # 使用read命令获取用户名 read -p "请输入用户名: " username ​…

游戏引擎学习第15天

视频参考:https://www.bilibili.com/video/BV1mbUBY7E24 关于游戏中文件输入输出(IO)操作的讨论。主要分为两类: 只读资产的加载 这部分主要涉及游戏中用于展示和运行的只读资源,例如音乐、音效、美术资源(如 3D 模型和…

探索 HTML 和 CSS 实现的 3D旋转相册

效果演示 这段HTML与CSS代码创建了一个包含10张卡片的3D旋转效果&#xff0c;每张卡片都有自己的边框颜色和图片。通过CSS的3D变换和动画&#xff0c;实现了一个动态的旋转展示效果 HTML <div class"wrapper"><div class"inner" style"-…

什么是Hadoop

Hadoop 介绍 Hadoop 是由 Apache 开发的开源框架&#xff0c;用于处理分布式环境中的海量数据。Hadoop 使用 Java 编写&#xff0c;通过简单的编程模型允许在集群中进行大规模数据集的存储和计算。它具备高可靠性、容错性和扩展性。 分布式存储&#xff1a;Hadoop 支持跨集群…

逆向攻防世界CTF系列39-debug

逆向攻防世界CTF系列39-debug 查了资料说.NET要用其它调试器&#xff0c;下载了ILSPY和dnSPY ILSPY比较适合静态分析代码最好了&#xff0c;函数名虽然可能乱码不显示&#xff0c;但是单击函数名还是能跟踪的&#xff0c;而dnSPY在动态调试上效果好&#xff0c;它的函数名不仅…

华为开源自研AI框架昇思MindSpore应用案例:人体关键点检测模型Lite-HRNet

如果你对MindSpore感兴趣&#xff0c;可以关注昇思MindSpore社区 一、环境准备 1.进入ModelArts官网 云平台帮助用户快速创建和部署模型&#xff0c;管理全周期AI工作流&#xff0c;选择下面的云平台以开始使用昇思MindSpore&#xff0c;获取安装命令&#xff0c;安装MindSpo…

Cellebrite VS IOS18Rebooting

Cellebrite VS IOS18Rebooting我们想分享一些有关 iOS 18 重启“功能”的信息。在过去一周左右的时间里&#xff0c;人们对 iOS 18 中一项新的未记录功能产生了极大关注&#xff0c;该功能会导致设备在一段时间不活动后重新启动。 这意味着&#xff0c;如果设备在一定时间不活…

使用 Axios 拦截器优化 HTTP 请求与响应的实践

目录 前言1. Axios 简介与拦截器概念1.1 Axios 的特点1.2 什么是拦截器 2. 请求拦截器的应用与实践2.1 请求拦截器的作用2.2 请求拦截器实现 3. 响应拦截器的应用与实践3.1 响应拦截器的作用3.2 响应拦截器实现 4. 综合实例&#xff1a;一个完整的 Axios 配置5. 使用拦截器的好…

【最大子矩阵——双指针 / 二分】

题目 双指针&#xff1a; 代码 #include <bits/stdc.h> using namespace std; const int N 85, M 1e510; int g[N][M]; int n, m, lim; int ans 1; int main() {ios::sync_with_stdio(0);cin.tie(0);cin >> n >> m;for(int i 1; i < n; i)for(int …

内网渗透-隧道判断-SSH-DNS-icmp-smb-上线linux-mac

1.通道判断 #SMB 隧道&通讯&上线 判断&#xff1a;445 通讯 上线&#xff1a;借助通讯后绑定上线 通讯&#xff1a;直接 SMB 协议通讯即可 #ICMP 隧道&通讯&上线 判断&#xff1a;ping 命令 上线&#xff1a;见前面课程 通讯&#xff1a;其他项…

【优选算法篇】分治乾坤,万物归一:在重组中窥见无声的秩序

文章目录 分治专题&#xff08;二&#xff09;&#xff1a;归并排序的核心思想与进阶应用前言、第二章&#xff1a;归并排序的应用与延展2.1 归并排序&#xff08;medium&#xff09;解法&#xff08;归并排序&#xff09;C 代码实现易错点提示时间复杂度和空间复杂度 2.2 数组…

【微软:多模态基础模型】(3)视觉生成

欢迎关注【youcans的AGI学习笔记】原创作品 【微软&#xff1a;多模态基础模型】&#xff08;1&#xff09;从专家到通用助手 【微软&#xff1a;多模态基础模型】&#xff08;2&#xff09;视觉理解 【微软&#xff1a;多模态基础模型】&#xff08;3&#xff09;视觉生成 【微…

netcore Kafka

一、新建项目KafakDemo <ItemGroup><PackageReference Include"Confluent.Kafka" Version"2.6.0" /></ItemGroup> 二、Program.cs using Confluent.Kafka; using System; using System.Threading; using System.Threading.Tasks;names…

工业生产安全-安全帽第一篇-opencv及java开发环境搭建

一.背景 公司是非煤采矿业&#xff0c;核心业务是采选&#xff0c;大型设备多&#xff0c;安全风险因素多。当下政府重视安全&#xff0c;头部技术企业的安全解决方案先进但价格不低&#xff0c;作为民营企业对安全投入的成本很敏感。利用我本身所学&#xff0c;准备搭建公司的…