Python - 如何将 Excel XLS 或 XLSX 转换为 PDF(综合指南)

360影视 2025-01-22 09:13 1

摘要:共享和分发:如果我们想与他人共享 Excel 文件,但不希望他们能够编辑或修改内容,将其转换为 PDF 是一个不错的选择。PDF 是只读文档,它保留了原始 Excel 文件的格式和布局,使其成为共享和分发报告、发票和其他类型的文档的理想选择。存档:PDF 文件

将 Excel 文件转换为 PDF 在各种情况下都很有用。以下是我们可能需要将 Excel 文件转换为 PDF 的一些常见原因:

共享和分发:如果我们想与他人共享 Excel 文件,但不希望他们能够编辑或修改内容,将其转换为 PDF 是一个不错的选择。PDF 是只读文档,它保留了原始 Excel 文件的格式和布局,使其成为共享和分发报告、发票和其他类型的文档的理想选择。存档:PDF 文件,特别是 PDF/A 文件,广泛用于重要文档的长期存档,因为它们独立于平台,不需要任何特殊软件即可查看。将 Excel 文件转换为 PDF/A 可确保该文档将来易于访问和阅读,即使用于创建它的原始软件已过时。打印:如果我们需要打印 Excel 文件,但想确保它正确打印并按照我们想要的方式显示,将其转换为 PDF 会有所帮助。PDF 专为高质量打印而设计,并提供一系列用于缩放、页面方向和其他打印相关设置的选项。法律和法规合规性:在某些行业(例如金融和医疗保健)中,可能会有严格的法规来管理敏感数据的存储和共享。将 Excel 文件转换为 PDF 可以通过提供安全且防篡改的格式来存储和共享数据,从而帮助确保符合这些法规。

为了在 Python 中将 Excel 文件转换为 PDF,本文使用名为 Spire.XLS for Python 的 Python Excel 库。

Spire.XLS for Python 是一个多功能且易于使用的库,用于在 Python 应用程序中创建、读取、编辑和转换 Excel 文件。有了这个库,我们可以轻松处理许多电子表格格式,例如 XLS、XLSX、XLSB、XLSM 和 ODS。此外,我们还能够将 Excel 文件渲染为其他类型的文件格式,例如 PDF、HTML、CSV、文本、图像、XML、SVG、ODS、PostScript 和 XPS。

可以通过在项目的终端中运行以下命令从 pypi 安装 Spire.XLS for Python:

pip install Spire.Xls

有关安装的更多详细信息,请查看此官方文档:如何在 VS Code 中安装 Spire.XLS for Python。

将 Excel 文件转换为 PDF 文档可以保留原始文件的格式和布局,同时使其更易于共享、分发、打印或存档。

在 Python 中将 Excel 文件转换为 PDF 很简单,只需要三个步骤:

创建 Workbook 对象。使用 LoadFromFile 方法打开 XLS 或 XLSX 文件。使用 SaveToFile 方法将文件另存为 PDF。

以下示例演示如何使用 Spire.XLS for Python 将 Excel 文件转换为 PDF 文件:

from spire.xls import *from spire.xls.common import *# Open an Excel XLS or XLSX fileworkbook = Workbookworkbook.LoadFromFile("Sample.xlsx")# workbook.LoadFromFile("Sample.xls")# Convert the Excel file to PDF formatworkbook.SaveToFile("ExcelToPDF.pdf", FileFormat.PDF)workbook.Dispose

添加页码可以大大改善文档的导航和组织,尤其是对于较长的文件。

在将 Excel 文件转换为 PDF 之前,我们需要在每个工作表中插入页码。Excel 中的页码通常放在工作表的页脚部分。使用 Spire.XLS for Python,可以通过与每个工作表关联的 PageSetup 对象的 CenterFooter 属性来完成此操作。

以下示例演示如何使用 Python 和 Spire.XLS for Python 将 Excel 文件转换为带有页码的 PDF:

from spire.xls import *from spire.xls.common import *# Open an Excel fileworkbook = Workbookworkbook.LoadFromFile("Sample.xlsx")# Iterate through each worksheet in the filefor sheet in workbook.Worksheets: # Set the center footer of each worksheet to display page numbers in the format "Page X of Y", where X is the current page number and Y is the total number of pages sheet.PageSetup.CenterFooter = "Page &P of &N" # Convert the Excel file to PDF formatworkbook.SaveToFile("ExcelToPdfWithPageNumbers.pdf", FileFormat.PDF)workbook.Dispose

在将 Excel 文件转换为 PDF 时自定义页面大小可确保生成的 PDF 符合特定的打印或显示标准。

在 Spire.XLS for Python 中,我们有两种方法可以在将工作表转换为 PDF 时设置工作表的页面大小:

标准页面大小:我们可以使用 PaperSize 属性来选择预定义的页面大小(如 A4、A3 等)。自定义页面大小:我们可以使用 SetCustomPaperSize 方法定义特定的自定义页面大小,我们可以在其中手动指定页面的宽度和高度。

以下示例演示了如何使用 Python 和 Spire.XLS for Python 将 Excel 文件转换为具有特定页面大小的 PDF:

from spire.xls import *from spire.xls.common import *# Open an Excel fileworkbook = Workbookworkbook.LoadFromFile("Sample.xlsx")# Iterate through each worksheet in the filefor sheet in workbook.Worksheets: # Set the page size of each worksheet to a standard page size sheet.PageSetup.PaperSize = PaperSizeType.PaperA3 # Or set the page size of each worksheet to a cutom page size # sheet.PageSetup.SetCustomPaperSize(500, 500) # Convert the Excel file to PDF formatworkbook.SaveToFile("ExcelToPdfWithSpecificPageSize.pdf", FileFormat.PDF)workbook.Dispose

将 Excel 文件转换为 PDF,同时将内容适合单个页面,可确保所有数据都得到有效缩放以适合指定的页面大小。这种方法在打印大型电子表格或复杂数据集时非常有用,因为它可以防止信息被划分到多个页面并增强可读性。

为了使工作表内容适合单个页面,我们可以使用 FitToPagesTall 和 FitToPagesWide 属性。以下示例演示了如何使用 Python 和 Spire.XLS 将 Excel 文件转换为 PDF 并使内容适合单个页面:

from spire.xls import *from spire.xls.common import *# Open an Excel fileworkbook = Workbookworkbook.LoadFromFile("ContactList.xlsx")# Iterate through each worksheet in the filefor sheet in workbook.Worksheets: # Fit worksheet to 1 page height sheet.PageSetup.FitToPagesTall = 1 # Fit worksheet to 1 page width sheet.PageSetup.FitToPagesWide = 1 # Convert the Excel file to PDF formatworkbook.SaveToFile("ExcelToPdfWithSpecificPageSize.pdf", FileFormat.PDF)workbook.Dispose

PDF/A 是 PDF 的专用版本,专为电子文档的长期存档而设计。将 Excel 文件转换为 PDF/A 可确保生成的文档符合长期保存的行业标准,包括字体嵌入、元数据和数字签名的要求。

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

PDF格式/A-1aPDF格式/A-1bPDF格式/A-2aPDF格式/A-2bPDF格式/A-3aPDF格式/A-3b

以下示例演示如何使用 Spire.XLS for Python 将 Excel 文件转换为 PDF/A-1a:

from spire.xls import *from spire.xls.common import *#Create a workbookworkbook = Workbook#Load an Excel fileworkbook.LoadFromFile("Sample.xlsx")# Specify the conformance level of the converted PDFworkbook.ConverterSetting.PdfConformanceLevel = PdfConformanceLevel.Pdf_A1A# Convert the Excel file to PDF with the specified conformance levelworkbook.SaveToFile("ExcelToPDFA.pdf", FileFormat.PDF)workbook.Dispose

当我们需要独立分发单个工作表时,将 Excel 文件中的每个工作表转换为单独的 PDF 是必不可少的。

为了实现这一点,我们可以使用 Worksheet 类的 SaveToPdf 方法。以下示例演示如何使用 Spire.XLS for Python 将 Excel 文件中的工作表转换为单独的 PDF 文件:

from spire.xls import *from spire.xls.common import *#Create a workbookworkbook = Workbook#Load an Excel fileworkbook.LoadFromFile("Sample.xlsx")#Iterate through the worksheets in the filefor sheet in workbook.Worksheets: FileName = sheet.Name + ".pdf" #Save each sheet to a separate PDF sheet.SaveToPdf(FileName)workbook.Dispose

当我们只想共享部分数据而不是整个工作表时,将 Excel 工作表中的特定单元格范围转换为 PDF 是有益的。要定义要转换为 PDF 的单元格区域,我们可以使用 PageSetup 类的 PrintArea 属性。

以下示例演示如何使用 Spire.XLS for Python 将 Excel 工作表中的特定单元格区域转换为 PDF:

from spire.xls import *from spire.xls.common import *# Open an Excel fileworkbook = Workbookworkbook.LoadFromFile("Sample.xlsx")# Get the first worksheetworksheet = workbook.Worksheets[0]# Specify the print areaworksheet.PageSetup.PrintArea = "A1:C5"# Save the worksheet as a PDFworksheet.SaveToPdf("CellRangeToPDF.pdf")workbook.Dispose

除了上述设置外,Spire.XLS 还为 Excel 到 PDF 的转换提供了广泛的自定义选项。例如,您可以调整或删除 Excel 工作表边距(例如,删除左边距:worksheet。PageSetup.LeftMargin = 0) 来更改或删除 PDF 页面的空白边距。

将 Excel 转换为 PDF 时,Spire.XLS 会尝试在系统内查找 Excel 文档中使用的字体,以确保正确呈现 PDF。如果没有确切的字体,将使用类似的字体。但是,如果既未找到精确字体,也未找到相似字体,则可能会发生“缺少字体”异常。

要解决与字体相关的问题,例如字体显示不正确或字体缺失错误,请执行以下操作:

检查系统字体: 验证 Excel 文档中使用的字体是否已安装在您的系统上。指定自定义字体目录: 如果您不想安装所需的字体,则可以将字体文件放在具有适当访问权限的文件夹中,并以编程方式指定文件夹路径。
下面介绍如何在代码中指定自定义字体目录:from spire.xls import *from spire.xls.common import *# Open the Excel fileworkbook = Workbookworkbook.LoadFromFile("Sample.xlsx")# Set the font folder pathworkbook.CustomFontFileDirectory = [("Fonts/")]# Convert the Excel file to PDFworkbook.SaveToFile("ExcelToPdfWithSpecifiedFontPath.pdf", FileFormat.PDF)workbook.Dispose

来源:自由坦荡的湖泊AI

相关推荐