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