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指定字体路径", FileFormat.PDF)
workbook.Dispose()

总结

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

本文完结。

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

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

相关文章

【C++】红黑树封装map—set

1 .关联式容器 C中的map是标准模板库(STL)中的一种关联容器,它存储的是键值对(key-value pairs),其中每个键都是唯一的。 键值对: 用来表示具有一一对应关系的一种结构,该结构中一…

系统思考—结构影响行为

最近在和一些企业领导者交流时,发现一个共性——创始人都非常厉害!战略清晰、点子多、方向准,简直就是企业的“定海神针”。但往往问题在了下一层级:如何把创始人的智慧传承下去,甚至复制到团队里,这成了一…

定时器简介

TIM(Timer定时器)简介 在第一部分,我们主要讲的是定时器基本定时的功能,也就是定一个时间,然后让定时器每隔这个时间产生一个中断,来实现每隔一个固定时间执行一段程序的目的,比如你要做个时钟、秒表,或者使用一些程序…

快排和归并

目录 前言 快速排序 相遇位置一定比key小的原理(大): 避免效率降低方法(快排优化) 三数取中(选key优化) 小区间优化 hoare版本快排 挖坑法快排 前后指针快排 非递归快排 归并排序 非递…

代码段数据段的划分

DPL DPL存储在段描述符中,规定访问该段的权限级别(Descriptor Privilege Level) CPL CPL是当前进程的权限级别(Current Privilege Level),是当前正在指向的代码段所在段的成绩,也就是CS段的DPL RPL RPL说明的是进程对段访问的请求权限(Re…

Essential Cell Biology--Fifth Edition--Chapter one (8)

1.1.4.6 The Cytoskeleton [细胞骨架] Is Responsible for Directed Cell Movements 细胞质基液不仅仅是一种无结构的化学物质和细胞器的混合物[soup]。在电子显微镜下,我们可以看到真核细胞的细胞质基液是由长而细的丝交叉而成的。通常[Frequently],可…

开源科学工程技术软件介绍 – EDA工具KLayout

link 今天向各位知友介绍的 KLayout是一款由德国团队开发的开源EDA工具。 KLayout是使用C开发的,用户界面基于Qt。它支持Windows、MacOS和Linux操作系统。安装程序可以从下面的网址下载: https://www.klayout.de/build.html KLayout图形用户界面&…

【设计模式】行为型模式(五):解释器模式、访问者模式、依赖注入

《设计模式之行为型模式》系列,共包含以下文章: 行为型模式(一):模板方法模式、观察者模式行为型模式(二):策略模式、命令模式行为型模式(三):责…

(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(下)----空间数据的编辑与处理(超超超详细!!!)

续上篇博客(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(上)----空间数据的编辑与处理(超超超详细!!!)-CSDN博客 继续更新 本篇博客内容为道路拓扑检查与修正&#x…

Unity3D 完整直升机控制器(虚拟仿真级别)

采用了MVC框架,以四轴驱动的方式对直升机的启动、飞行做了仿真模拟,包括但不限于参数设置、启动发动机和旋翼、数据显示、HUD、UI、升降、水平移动、转弯等。 文末有完整的工程资源链接。 1.旋翼 直升机飞行过程中,有顶部的主旋翼和尾部的尾…

yum工具的学习

Linux下安装软件的方法 1.源代码安装 2.rmp包安装 3.包管理器进行安装 --- yum/apt Linux下载软件的过程 操作系统的好坏评估 -- 生态问题 yum具体操作 Linux软件安装所有人都能用,是以other的身份去执行可执行程序 文件拷贝(sudo)-- &g…

Linux:进程的优先级 进程切换

文章目录 前言一、进程优先级1.1 基本概念1.2 查看系统进程1.3 PRI和NI1.4 调整优先级1.4.1 top命令1.4.2 nice命令1.4.3 renice命令 二、进程切换2.1 补充概念2.2 进程的运行和切换步骤(重要) 二、Linux2.6内核进程O(1)调度队列(重要&#x…

MongoDB在现代Web开发中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 MongoDB在现代Web开发中的应用 MongoDB在现代Web开发中的应用 MongoDB在现代Web开发中的应用 引言 MongoDB 概述 定义与原理 发展…

爬取链家二手房房价数据存入mongodb并进行分析

感谢您的关注!需要完整源码评论区获取~ 【实验目的】 1. 使用 python 将爬虫数据存入 mongodb; 2. 使用 python 读取 mongodb 数据并进行可视化分析。 【实验原理】 MongoDB 是文档数据库,采用 BSON 的结构来存储数据。在文档中可嵌套其…

Solana 区块链的技术解析及未来展望 #dapp开发#公链搭建

随着区块链技术的不断发展和应用场景的扩展,性能和可拓展性成为各大公链竞争的关键因素。Solana(SOL)因其高吞吐量、低延迟和低成本的技术特性,在众多区块链项目中脱颖而出,被誉为“以太坊杀手”之一。本文将从技术层面…

Vue通过file控件上传文件到Node服务器

功能: 多文件同步上传、拖动上传、实时上传进度条、上传前的删除文件、原生file控件的美化 搁置的功能: 取消上传(上传过程中取消,即取消网络请求abort)、上传文件夹、大文件切片、以及很多限制条件未处理(重复上传、文件格式。。。) bug: 文件总大小(。。。竟然从d…

Element-ui Select选择器自定义搜索方法

效果图 具体实现 <template><div class"home"><el-selectref"currencySelect"v-model"currency"filterable:spellcheck"false"placeholder"请选择":filter-method"handleCurrencyFilter"change&q…

JS的学习与使用

JS的学习与使用 一 什么是Javascript&#xff1f; Javascript是一门跨平台&#xff0c;面向对象的脚本语言&#xff0c;是用来控制网页行为的&#xff0c;它能使网页可以交互 java与Javascript是完全不同的语言&#xff0c;不论是概念还是设计&#xff0c;但是基础语法类似 E…

Docker:查看镜像里的文件

目录 背景步骤1、下载所需要的docker镜像2、创建并运行临时容器3、停止并删除临时容器 背景 在开发过程中&#xff0c;为了更好的理解和开发程序&#xff0c;有时需要确认镜像里的文件是否符合预期&#xff0c;这时就需要查看镜像内容 步骤 1、下载所需要的docker镜像 可以使…

【网络安全 | 漏洞挖掘】通过密码重置污染实现账户接管

未经许可,不得转载。 文章目录 密码重置污染攻击漏洞挖掘的过程目标选择与初步测试绕过 Cloudflare 的尝试发现两个域名利用 Origin 头部污染实现账户接管攻击流程总结在今天的文章中,我们将深入探讨一种 账户接管 漏洞,并详细分析如何绕过 Cloudflare 的保护机制,利用密码…