Pythonのopenpyxlを使ってExcelファイルの印刷設定をする
印刷範囲を「A1:V22」にする
印刷の向きを横にする
縦1ページ、横1ページに印刷する
import openpyxl #エクセルファイルを開く filename = 'test.xlsx' wb = openpyxl.load_workbook(filename=filename) #選択されているシートを処理対象にする ws = wb.active #印刷範囲の設定 ws.print_area = 'A1:V22' #印刷の向きを横にする(縦にする場合は'portrait') ws.page_setup.orientation = 'landscape' #縦1ページ、横1ページに印刷する ws.page_setup.fitToWidth = 1 ws.page_setup.fitToHeight = 1 ws.sheet_properties.pageSetUpPr.fitToPage = True #エクセルファイルを保存する wb.save(filename)
上記の設定内容を確認するには下記のプログラムを実行すればよい
import openpyxl wb = openpyxl.load_workbook('test.xlsx') ws = wb.active print(ws.print_area) print('\n') print(ws.page_setup) print('\n') print(ws.sheet_properties.pageSetUpPr)
実行結果
['$A$1:$V$22'] <openpyxl.worksheet.page.PrintPageSetup object> Parameters: orientation='landscape', paperSize=1, scale=100, fitToHeight=1, fitToWidth=1, firstPageNumber=0, useFirstPageNumber=False, paperHeight=None, paperWidth=None, pageOrder='downThenOver', usePrinterDefaults=None, blackAndWhite=False, draft=False, cellComments=None, errors=None, horizontalDpi=300, verticalDpi=300, copies=1, id=None <openpyxl.worksheet.properties.PageSetupProperties object> Parameters: autoPageBreaks=None, fitToPage=True