openpyxl打印设置

import openpyxl as pyxl
from openpyxl.worksheet.pagebreak import Break
wb=pyxl.Workbook()
ws=wb.active
#源码worksheet->worksheet->Worksheet()
#设置打印区域
ws.print_area = 'A1:F10'

#设置打印标题和打印列
ws.print_title_rows='1:1'
ws.print_title_cols="A:B"
print(ws.print_titles)#只读属性

#冻结窗格 冻结第一行第一列
ws.freeze_panes = 'B2'

#未测试 分页符 适用于openpyxl 3.0.4以后
row_number=20 #需要插入分页符的行号
next_page_horizon, next_page_vertical = ws.page_breaks # 返回2个变量 后期版本可能取消
next_page_horizon.append(Break(row_number)) # 通过help可以查到append属性

#设置打印A3横向
ws.set_printer_settings(ws.PAPERSIZE_A3,ws.ORIENTATION_LANDSCAPE)
"""
    #所有默认设置如下 worksheet 类属性
    # Paper size
    PAPERSIZE_LETTER = '1'
    PAPERSIZE_LETTER_SMALL = '2'
    PAPERSIZE_TABLOID = '3'
    PAPERSIZE_LEDGER = '4'
    PAPERSIZE_LEGAL = '5'
    PAPERSIZE_STATEMENT = '6'
    PAPERSIZE_EXECUTIVE = '7'
    PAPERSIZE_A3 = '8'
    PAPERSIZE_A4 = '9'
    PAPERSIZE_A4_SMALL = '10'
    PAPERSIZE_A5 = '11'

    # Page orientation
    ORIENTATION_PORTRAIT = 'portrait' #纵向
    ORIENTATION_LANDSCAPE = 'landscape' #横向
"""

#参照源码 worksheet->page->PrintPageSetup()
#设置缩放所有列到一页,直接设置fitToWidth=True无效,需采用如下方法
#所有列设置为一页 逆向思维,先缩放到页面 然后适合高度改为FLASE
ws.sheet_properties.pageSetUpPr.fitToPage = True#此行必须设置
ws.page_setup.fitToHeight = False
#其他打印设置
ws.page_setup.orientation = "landscape"#设置打印方向 values=("default", "portrait", "landscape")
ws.page_setup.paperSize = "8" #纸张尺寸参见上表
ws.page_setup.firstPageNumber = 1#页码起始页
ws.page_setup.useFirstPageNumber = True #使用起始页 不知道啥意思 未测试
ws.page_setup.paperHeight = 297#纸张高度
ws.page_setup.paperWidth = 410#纸张宽度
ws.page_setup.pageOrder = "downThenOver"##页面设置->工作表->打印顺序values=("downThenOver", "overThenDown") 先列后行,先行后列 
ws.page_setup.usePrinterDefaults = True #使用默认打印机
ws.page_setup.blackAndWhite = True #页面设置->工作表->单色模式
ws.page_setup.draft = True #页面设置->工作表->草稿质量
ws.page_setup.cellComments = True #页面设置->工作表->批注和注释values=("asDisplayed", "atEnd") 如工作表所示,工作表末尾
ws.page_setup.errors = True #页面设置->工作表->错误单元格打印为values=("displayed", "blank", "dash", "NA")  显示值,空白,--,"#N/A"
ws.page_setup.horizontalDpi = True #页面设置->工作表->打印质量
ws.page_setup.verticalDpi = True #页面设置->工作表->打印质量
ws.page_setup.copies = True #文件->打印->份数 未测试


#参照源码worksheet->header_footer->_HeaderFooterPart()
#设置页眉 左中右 left center right
ws.oddHeader.center.text = "XXX" #文本
ws.oddHeader.center.size = 24 #字号
ws.oddHeader.center.font = "微软雅黑" #字体
ws.oddHeader.center.color = "000000" #16进制RGB颜色 参照PS
#设置页脚
ws.oddFooter.center.text = "第&[Page]页 共&[Pages]页"
ws.oddFooter.center.size = 12
ws.oddFooter.center.font = "微软雅黑"
ws.oddFooter.center.color = "000000"

#其他页眉页脚设置 未测试
ws.differentOddEven=True #页面设置->页眉/页脚->奇偶页不同
ws.differentFirst=True #页面设置->页眉/页脚->首页不同
ws.scaleWithDoc=True #页面设置->页眉/页脚->随文档自动缩放
ws.alignWithMargins=True #页面设置->页眉/页脚->与页边距对齐
ws.evenHeader.center.text="XXX" #偶数页眉
ws.evenFooter.center.text="XXX" #偶数页脚
ws.firstHeader.center.text="XXX" #奇数页眉
ws.firstFooter.center.text="XXX" #奇数页脚

# 页眉页脚自动文本
"""
Individual left/center/right header/footer part

Do not use directly.

Header & Footer ampersand codes:

* &A   Inserts the worksheet name #工作表名
* &B   Toggles bold #加粗
* &D or &[Date]   Inserts the current date #日期
* &E   Toggles double-underline #双下划线
* &F or &[File]   Inserts the workbook name #文件名
* &I   Toggles italic #斜体
* &N or &[Pages]   Inserts the total page count #总页码
* &S   Toggles strikethrough #删除线
* &T   Inserts the current time #当前时间
* &[Tab]   Inserts the worksheet name #当前工作表名
* &U   Toggles underline #下划线
* &X   Toggles superscript #上标
* &Y   Toggles subscript #下标
* &P or &[Page]   Inserts the current page number #当前页码
* &P+n   Inserts the page number incremented by n #当前页码+n
* &P-n   Inserts the page number decremented by n #当前页码-n
* &[Path]   Inserts the workbook path #当前文件路径
* &&   Escapes the ampersand character #转义字符和符号
* &"fontname"   Selects the named font #选择字体名
* &nn   Selects the specified 2-digit font point size #选择指定的两位字体点大小?

Colours are in RGB Hex #颜色是十六进制RGB
"""

#源码worksheet->page->PrintOptions()
#页面设置->页边距->居中方式 水平/垂直
ws.print_options.horizontalCentered=True
ws.print_options.verticalCentered=True
#未测试 
ws.print_options.headings=True #页面设置->工作表->行和列标题
ws.print_options.gridLines=True #页面设置->工作表->网格线
ws.print_options.gridLinesSet=True #猜不出来什么意思


#源码worksheet->page->PageMargins()
#未测试 页边距
ws.page_margins.left=0.75 #左
ws.page_margins.right=0.75 #右
ws.page_margins.top=1 #上
ws.page_margins.bottom=1 #下
ws.page_margins.header=0.5 #页眉
ws.page_margins.footer=0.5 #页脚

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值