Python 实现 Excel 到 ODS、XPS、PostScript 及 PDF/A-1b 的格式转换

33 阅读3分钟

在日常的数据处理与文档管理工作中,将 Excel 文件转换为其他格式是一项常见需求。不同的目标格式服务于不同的场景:ODS 适用于需要与开源办公套件交换数据的场景,XPS 和 PostScript 多见于印刷与专业排版领域,而 PDF/A-1b 则是长期归档的标准选择。

本文将介绍如何利用 Spire.XLS for Python 这一第三方库,通过 Python 代码实现将 Excel 工作簿转换为上述四种格式。该库的一个特点是独立于 Microsoft Office 环境运行,这在服务器端或没有安装 Office 的机器上会显得比较方便。

环境准备

开始之前,需要通过 pip 安装所需的库。根据官方文档,主要安装 Spire.XLS for Python 即可,它通常会包含必要的依赖。

pip install Spire.XLS

安装完成后,即可在 Python 脚本中引用相关的模块。

转换为 ODS、XPS 和 PostScript

对于 ODS、XPS 和 PostScript 这三种格式,转换流程基本一致。核心是使用 Workbook 类加载 Excel 文件,然后调用 SaveToFile 方法并指定不同的 FileFormat 枚举值。

FileFormat 枚举中与本文相关的几个成员包括:

  • FileFormat.ODS:对应 OpenDocument 电子表格格式。
  • FileFormat.XPS:对应 XPS(XML Paper Specification)文档格式。
  • FileFormat.PostScript:对应 PostScript 页面描述语言格式。

以下是一个完整的代码示例:

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

# 1. 创建 Workbook 对象并加载 Excel 文件
workbook = Workbook()
workbook.LoadFromFile("示例.xlsx")

# 2. 分别转换为不同格式
# 转换为 ODS
workbook.SaveToFile("转换结果.ods", FileFormat.ODS)

# 转换为 XPS
workbook.SaveToFile("转换结果.xps", FileFormat.XPS)

# 转换为 PostScript
workbook.SaveToFile("转换结果.ps", FileFormat.PostScript)

# 3. 释放资源
workbook.Dispose()

转换为符合存档标准的 PDF/A-1b

将 Excel 转换为 PDF 是一个更常见的需求,但如果对文档的长期可读性有较高要求,符合 ISO 标准的 PDF/A 格式会是更好的选择。PDF/A-1b 是其中一种广泛使用的子集,它要求文档完全自包含,并禁止使用外部字体引用、音频、视频等不便于长期保存的内容。

使用 Spire.XLS for Python 实现这一转换,需要额外设置 PDF 的一致性级别。具体操作是通过 Workbook.ConverterSetting.PdfConformanceLevel 属性进行配置。

代码示例如下:

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

# 1. 创建 Workbook 对象并加载 Excel 文件
workbook = Workbook()
workbook.LoadFromFile("示例.xlsx")

# 2. 设置 PDF 一致性级别为 PDF/A-1b
workbook.ConverterSetting.PdfConformanceLevel = PdfConformanceLevel.Pdf_A1B

# 3. 保存为 PDF 文件
workbook.SaveToFile("转换结果.pdf", FileFormat.PDF)

# 4. 释放资源
workbook.Dispose()

注意事项

  • 独立性与兼容性:该库不依赖本地安装的 Microsoft Office 或 Excel 应用程序,可以在 Windows、Linux 等平台上运行。
  • 资源释放:在操作完成后,调用 workbook.Dispose() 是一个良好的习惯,有助于及时释放文件句柄和内存资源。
  • 授权提示:Spire.XLS for Python 是一个商业库,但也提供了免费版本(Free Spire.XLS for Python)供开发者测试或用于非商业用途。免费版可能对转换页数或功能有一定限制,在实际集成项目中使用时,需要注意其授权协议。

总结

通过 Spire.XLS for Python 提供的 Workbook.SaveToFile 方法和 ConverterSetting 配置选项,可以用较为简洁的代码实现 Excel 到 ODS、XPS、PostScript 和 PDF/A-1b 的批量转换。这种方法避免了依赖本地 Excel 程序的复杂性,适合在自动化脚本或服务端应用中使用。