Excel2PDF
本文主要介绍使用Aspose.Cells for Python via Java工具,将Excel转化为PDF。如果想直接使用,可以直接使用 扩展column 章节的demom,代码中也有相关特性的注释。
安装
官方安装教程
- Install Java
- Install Aspose.Cells for Python via Java from pypi
pip install aspose-cellsConver Excel to PDF
license 设置
这里写个函数,后续demo都会调用该函数。license可以去官方网站申请临时license试用def set_license(license_file_path='/usr/src/app/dist_model/license/Aspose.Cells.PythonviaJava.lic'): try: license = License() license.setLicense(license_file_path) except RuntimeError as err: print("There was an error setting the license: {0}".format(err))简单的demo
import jpype jpype.startJVM() from asposecells.api import Workbook, License set_license() workbook = Workbook('test.xls') workbook.save('test.pdf') jpype.shutdownJVM()对与列过多的Excel
列过多,超出默认A4的宽度,转化成pdf后丢失数据的处理方法参考文档import jpype jpype.startJVM() from asposecells.api import Workbook, PdfSaveOptions, License set_license() workbook = Workbook('test.xls') pdf_options = PdfSaveOptions() pdf_options.setAllColumnsInOnePagePerSheet(True) # excel 列过多,让pdf自动拓宽宽度 workbook.save('test.pdf') jpype.shutdownJVM()- Convert Excel to PDF
- pdfsaveoptions
扩展 column
列过窄的情况下,转化成pdf会导致信息丢失 ```python import jpype jpype.startJVM() from asposecells.api import Workbook, PdfSaveOptions, License set_license() workbook = Workbook('test.xls') pdf_options = PdfSaveOptions() pdf_options.setAllColumnsInOnePagePerSheet(True) # excel 列过多,让pdf自动拓宽宽度 pdf_options.setOnePagePerSheet(True) # 将一个sheet 输出为一页, 如果为false,则会自动分页
worksheets = workbook.getWorksheets() # 获取所有sheet sheet_count = worksheets.getCount() # 获取sheet的总个数 for i in range(sheet_count): single_sheet = worksheets.get(i) # 获取单个sheet single_sheet.autoFitColumns() # 对每列进行自适应,避免因cell过窄,导致cell 被cut single_sheet.autoFitRows() # 同autoFitColumns
workbook.save('test.pdf') jpype.shutdownJVM() ``` 参考文档