导入模块
import win32com.client
import win32con
设置打印区域
worksheet.PageSetup.PrintArea = '$A$1:$C$24'
设置顶端标题行
worksheet.PageSetup.PrintTitleRows = '$1:$1'
设置左侧标题列
worksheet.PageSetup.PrintTitleColumns = '$A:$A'
设置文件方向
- 横向:win32con.DMORIENT_LANDSCAPE
- 纵向: win32con.DMORIENT_PORTRAIT
worksheet.PageSetup.Orientation = win32con.DMORIENT_LANDSCAPE # 横向
设置缩放比例(这边不需要填%)
worksheet.PageSetup.Zoom = 80
设置N页宽,N页高
需要先把Zoom关掉,设置成False,才能设置。
worksheet.PageSetup.Zoom = False
worksheet.PageSetup.FitToPagesWide = 1
worksheet.PageSetup.FitToPagesTall =2
设置数据居中方式
- 水平居中方式:CenterHorizontally
- 垂直居中方式:CenterVertically
worksheet.PageSetup.CenterHorizontally = True
worksheet.PageSetup.CenterVertically = True
打印工作表
openpyxl可以设置打印参数,但是没有打印操作,这也是我出这篇的目的,弥补openpyxl的不足。
worksheet.PrintOut()
综合实例
import win32com.client
import win32con
excelApp = win32com.client.Dispatch('Excel.Application')
excelApp.Visible = False
excelApp.DisplayAlerts = False
wb = excelApp.Workbooks.Open(r'C:\Users\12717\Desktop\test.xlsx')
ws = wb.Activesheet
ws.PageSetup.PrintArea = '$A$1:$C$24'
ws.PageSetup.PrintTitleRows = '$1:$1'
ws.PageSetup.PrintTitleColumns = '$A:$A'
ws.PageSetup.Orientation = win32con.DMORIENT_LANDSCAPE # 横线
ws.PageSetup.Zoom = False
ws.PageSetup.FitToPagesWide = 1
ws.PageSetup.FitToPagesTall =2
ws.PageSetup.CenterHorizontally = True
ws.PageSetup.CenterVertically = True
wb.Save()
excelApp.Quit()










网友评论