13

Excelファイルを読み取り、各ワークシートを見つけて、Excelで定義された標準フォーマットでこれらをpdfに印刷するPythonスクリプトを作成する必要があります。

次の質問を見つけましたPython で Excel ファイルを開くにはどうすればよいですか? 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のドキュメントは混乱しています

xlrd バージョン 0.6.1 に含まれていない書式設定機能: その他のシート レベルおよびブック レベルのアイテム (印刷レイアウト、スクリーン ペインなど)

書式設定

序章

この一連の機能は、xlrd バージョン 0.6.1 で新しく追加されたもので、(1) スプレッドシートの内容 (たとえば) を画面または PDF ファイルに表示/レンダリングするために必要な情報を提供することを目的としています。

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を見つけましたが、まだ使い方がわかりません。

4

1 に答える 1

29

これは、この答えを置く場所のようです。

最も単純な形式では:

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)

1 ページに収まるようにスケーリングし、印刷領域を設定する小さな書式設定マジックを含めます。

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

于 2015-08-04T15:19:16.977 に答える