CSV文件以纯文本形式存储表格数据,通用性极强,但在正式场合——比如向客户交付数据报表、归档项目文档或打印材料时,它的短板就暴露出来了:没有格式、列宽不均、分页混乱,阅读体验大打折扣。
PDF则恰好弥补了这些缺陷。它固定排版,跨平台显示一致,是正式文档的首选格式。本文介绍一种简单直接的方法:利用 Spire.XLS for Python 库,将CSV文件加载为工作簿,调整表格样式,再导出为规整的PDF文档。整个过程只需十几行代码,无需安装Microsoft Excel。

在开始编码之前,先安装所需的依赖库:
pip install Spire.XLSSpire.XLS for Python 是一个功能强大的Excel操作库,支持读取、写入、转换等多种操作,且不依赖任何本地Excel组件。
下面是一段完整的转换代码,涵盖加载、样式调整和导出三个核心步骤:
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()Workbook 是操作的核心类。LoadFromFile 方法除了传入文件路径外,还支持指定分隔符、起始读取行和起始读取列。例如 ",", 1, 1 表示以逗号为分隔符,从第一行第一列开始读取。如果你的CSV文件使用制表符或分号分隔,只需替换为 "\t" 或 ";" 即可。
workbook.ConverterSetting.SheetFitToPage = True 是一个容易被忽略却至关重要的设置。如果不开启此项,当表格列数较多时,导出的PDF可能会将内容拆分到多页,阅读时需要来回翻页,非常不便。开启后,PDF页面会自动缩放,保证所有列在一页内完整呈现。
通过循环调用 sheet.AutoFitColumn(i),让每一列的宽度根据该列最长文本内容自动调整。这样既能避免文字重叠或显示为"####",也能让表格看起来更加整洁专业。
最后调用 SaveToFile 并指定 FileFormat.PDF,即可生成PDF文件。Dispose 方法用于释放资源,养成良好习惯。
上面的示例已经能满足基本需求,但如果你希望PDF的样式更加精致,Spire.XLS 还提供了更多定制选项。例如,设置字体、字号、对齐方式,或调整页面方向:
# 设置全局字体和字号
sheet.AllocatedRange.Style.Font.FontName = "Arial"
sheet.AllocatedRange.Style.Font.Size = 14
# 设置水平居中对齐
sheet.AllocatedRange.Style.HorizontalAlignment = HorizontalAlignType.Center
# 将页面方向调整为横向
sheet.PageSetup.Orientation = PageOrientationType.Landscape这些设置能让导出的PDF更加符合正式文档的要求。
这一方案尤其适合以下场景:
利用 Spire.XLS for Python,只需十几行代码即可完成CSV到PDF的转换,同时还能对表格样式进行灵活控制。SheetFitToPage 与 AutoFitColumn 的组合使用,是保证输出页面整洁美观的关键。如果你正被CSV的"素颜"困扰,不妨试试这个方案。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。