这个脚本是之前我之前处理数据的时候用过,主要作用是将excel转pdf文件,脚本是从网上找到的,我自己做了微调,为尊重原作者,源作者注释内容我做了保留,这个脚本唯一不足的是配置这个脚本的运行环境稍微复杂,不过不着急,我们先看脚本,稍后我们再看如让这个脚本运行起来:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# XLSXtoPDF.py import sys reload(sys) sys.setdefaultencoding("utf-8") # Program to convert the data from an XLSX file to PDF. # Uses the openpyxl library and xtopdf. # Author: Vasudev Ram - http://jugad2.blogspot.com # Copyright 2015 Vasudev Ram. from openpyxl import load_workbook from PDFWriter import PDFWriter workbook = load_workbook(u'test.xlsx', guess_types=True, data_only=True) worksheet = workbook.active pw = PDFWriter('data.pdf') pw.setFont('Courier', 12) pw.setHeader('XLSXtoPDF.py - convert XLSX data to PDF') pw.setFooter('Generated using openpyxl and xtopdf') ws_range = worksheet.iter_rows('A1:C9') for row in ws_range: s = '' for cell in row: if cell.value is None: s += ' ' * 11 else: s += str(cell.value).rjust(10) + ' ' pw.writeLine(s) pw.savePage() pw.close() |
脚本中A1:C9是定义你表格的数据范围,一般是左上到右下的范围,表示要转化这部分数据,如果你直接运行这个脚本,多半是运行不了,可以根据提示少什么模块就用 pip安装,这里重点说的是PDFWriter,你如果用pip安装,100%会报如下错误:
Could not find a version that satisfies the requirement PDFWriter (from versions: )
No matching distribution found for PDFWriter
因为它压根就不是个模块,它只是xtopdf中的一个文件,所以这就要安装xtopdf,下载xtopdf-1.0.tar.gz,解压,进入目录会看到PDFWriter.py文件,装完这个,还需要安装ReportLab,下载ReportLab_1_21.tgz,解压,然后将reportlab目录拷贝到 /usr/lib/python2.6/site-packages/下,经过以上,再运行脚本就没有任何问题了,文章中需要的软件包,可点击阅读原文进行下载。
软件下载: