首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用 Python 将 CSV 转为 PDF(含表格样式美化)

使用 Python 将 CSV 转为 PDF(含表格样式美化)

原创
作者头像
用户12495000
修改2026-08-03 10:57:03
修改2026-08-03 10:57:03
1380
举报

CSV文件以纯文本形式存储表格数据,通用性极强,但在正式场合——比如向客户交付数据报表、归档项目文档或打印材料时,它的短板就暴露出来了:没有格式、列宽不均、分页混乱,阅读体验大打折扣。

PDF则恰好弥补了这些缺陷。它固定排版,跨平台显示一致,是正式文档的首选格式。本文介绍一种简单直接的方法:利用 Spire.XLS for Python 库,将CSV文件加载为工作簿,调整表格样式,再导出为规整的PDF文档。整个过程只需十几行代码,无需安装Microsoft Excel。

准备工作

在开始编码之前,先安装所需的依赖库:

代码语言:javascript
复制
pip install Spire.XLS

Spire.XLS for Python 是一个功能强大的Excel操作库,支持读取、写入、转换等多种操作,且不依赖任何本地Excel组件。

完整代码实现

下面是一段完整的转换代码,涵盖加载、样式调整和导出三个核心步骤:

代码语言:javascript
复制
from spire.xls import *
from spire.xls.common import *

# 创建 Workbook 对象
workbook = Workbook()

# 加载 CSV 文件(参数:文件路径, 分隔符, 起始行, 起始列)
workbook.LoadFromFile("sample.csv", ",", 1, 1)

# 设置页面缩放,确保内容适配一页
workbook.ConverterSetting.SheetFitToPage = True

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

# 自动调整每一列的列宽,避免内容被截断
i = 1
while i < sheet.Columns.Length:
    sheet.AutoFitColumn(i)
    i += 1

# 导出为 PDF
workbook.SaveToFile("CSVToPDF.pdf", FileFormat.PDF)
workbook.Dispose()

关键步骤解析

1. 加载CSV文件

Workbook 是操作的核心类。LoadFromFile 方法除了传入文件路径外,还支持指定分隔符、起始读取行和起始读取列。例如 ",", 1, 1 表示以逗号为分隔符,从第一行第一列开始读取。如果你的CSV文件使用制表符或分号分隔,只需替换为 "\t"";" 即可。

2. 一页完整显示

workbook.ConverterSetting.SheetFitToPage = True 是一个容易被忽略却至关重要的设置。如果不开启此项,当表格列数较多时,导出的PDF可能会将内容拆分到多页,阅读时需要来回翻页,非常不便。开启后,PDF页面会自动缩放,保证所有列在一页内完整呈现。

3. 自动调整列宽

通过循环调用 sheet.AutoFitColumn(i),让每一列的宽度根据该列最长文本内容自动调整。这样既能避免文字重叠或显示为"####",也能让表格看起来更加整洁专业。

4. 导出为PDF

最后调用 SaveToFile 并指定 FileFormat.PDF,即可生成PDF文件。Dispose 方法用于释放资源,养成良好习惯。

进一步美化表格

上面的示例已经能满足基本需求,但如果你希望PDF的样式更加精致,Spire.XLS 还提供了更多定制选项。例如,设置字体、字号、对齐方式,或调整页面方向:

代码语言:javascript
复制
# 设置全局字体和字号
sheet.AllocatedRange.Style.Font.FontName = "Arial"
sheet.AllocatedRange.Style.Font.Size = 14

# 设置水平居中对齐
sheet.AllocatedRange.Style.HorizontalAlignment = HorizontalAlignType.Center

# 将页面方向调整为横向
sheet.PageSetup.Orientation = PageOrientationType.Landscape

这些设置能让导出的PDF更加符合正式文档的要求。

适用场景

这一方案尤其适合以下场景:

  • 批量生成报表 :定期从数据库导出CSV,自动转换为PDF归档。
  • 数据交付 :向客户或合作方提供格式固定的数据文档,避免因软件版本不同导致排版错乱。
  • 无Excel环境的服务器 :Spire.XLS 不依赖本地Excel,可在Linux服务器上稳定运行。

总结

利用 Spire.XLS for Python,只需十几行代码即可完成CSV到PDF的转换,同时还能对表格样式进行灵活控制。SheetFitToPageAutoFitColumn 的组合使用,是保证输出页面整洁美观的关键。如果你正被CSV的"素颜"困扰,不妨试试这个方案。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 准备工作
  • 完整代码实现
  • 关键步骤解析
    • 1. 加载CSV文件
    • 2. 一页完整显示
    • 3. 自动调整列宽
    • 4. 导出为PDF
  • 进一步美化表格
  • 适用场景
  • 总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档