将excel文件中选择的工作表打印到python中的pdf
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了将excel文件中选择的工作表打印到python中的pdf,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2795字,纯文字阅读大概需要4分钟。
内容图文
![将excel文件中选择的工作表打印到python中的pdf](/upload/InfoBanner/zyjiaocheng/708/21c8709f734e4ec7bb6ddd370ecf1d20.jpg)
我需要编写一个python脚本来读取excel文件,找到每个工作表,然后使用excel中定义的标准格式将这些打印到pdf.
我发现了以下问题How can I open an Excel file in Python?,它指向了http://www.python-excel.org/
这使我能够找到每个工作表的名称.
import xlrd
book = xlrd.open_workbook("myfile.xls")
print "Worksheet name(s):", book.sheet_names()
这导致了
Worksheet name(s): [u'Form 5', u'Form 3', u'988172 Adams Road', u'379562 Adams Road', u'32380 Adams Road', u'676422 Alderman Road', u'819631 Appleyard Road', u'280998 Appleyard Road', u'781656 Atkinson Road', u'949461 Barretts Lagoon Road', u'735284 Bilyana Road', u'674784 Bilyana Road', u'490894 Blackman Road', u'721026 Blackman Road']
现在我想打印以数字开头的每个工作表到pdf.
所以我可以
worksheetList=book.sheet_names()
for worksheet in worksheetList:
if worksheet.find('Form')!=0: #this just leaves out worksheets with the word 'form' in it
<function to print to pdf> book.sheet_by_name(worksheet) #what can I use for this?
或类似于上面的东西…我可以用什么来达到这个目的?
XLRD文档令人困惑
Formatting features not included in xlrd version 0.6.1: Miscellaneous
sheet-level and book-level items e.g. printing layout, screen panes
和
Formatting
Introduction
This collection of features, new in xlrd version 0.6.1, is intended to
provide the information needed to (1) display/render spreadsheet
contents (say) on a screen or in a PDF file
见https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html?p=4966
这是真的吗?可以使用其他一些包打印到pdf吗?
对于unix我看到有http://dag.wieers.com/home-made/unoconv/什么用于Windows?我找到了https://gist.github.com/mprihoda/2891437,但无法弄清楚如何使用它.
解决方法:
这似乎是回答这个问题的地方.
最简单的形式:
import win32com.client
o = win32com.client.Dispatch("Excel.Application")
o.Visible = False
wb_path = r'c:\user\desktop\sample.xls'
wb = o.Workbooks.Open(wb_path)
ws_index_list = [1,4,5] #say you want to print these sheets
path_to_pdf = r'C:\user\desktop\sample.pdf'
wb.WorkSheets(ws_index_list).Select()
wb.ActiveSheet.ExportAsFixedFormat(0, path_to_pdf)
包括一个小的格式魔术,可以缩放以适合单个页面并设置打印区域:
import win32com.client
o = win32com.client.Dispatch("Excel.Application")
o.Visible = False
wb_path = r'c:\user\desktop\sample.xls'
wb = o.Workbooks.Open(wb_path)
ws_index_list = [1,4,5] #say you want to print these sheets
path_to_pdf = r'C:\user\desktop\sample.pdf'
print_area = 'A1:G50'
for index in ws_index_list:
#off-by-one so the user can start numbering the worksheets at 1
ws = wb.Worksheets[index - 1]
ws.PageSetup.Zoom = False
ws.PageSetup.FitToPagesTall = 1
ws.PageSetup.FitToPagesWide = 1
ws.PageSetup.PrintArea = print_area
wb.WorkSheets(ws_index_list).Select()
wb.ActiveSheet.ExportAsFixedFormat(0, path_to_pdf)
如果你想看看,我还在github上启动了一个模块:https://github.com/spottedzebra/excel/blob/master/excel_to_pdf.py
内容总结
以上是互联网集市为您收集整理的将excel文件中选择的工作表打印到python中的pdf全部内容,希望文章能够帮你解决将excel文件中选择的工作表打印到python中的pdf所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。