Python自动化办公:openpyxl教程(进阶)
在后台回复【阅读书籍】
即可获取python相关电子书~
Hi,我是山月。
之前给大家分享了openpyxl的基础教程:Python自动化办公:openpyxl教程(基础)。不知道大家学习的怎么样了。
今天给大家分享一下整理了一周的openpyxl进阶教程。
全文一共16000+字,包括了:批注、表格、条件格式、公式、筛选和排序、验证单元格、定义名称、分级显示、设置九个部分。
其中由于数据透视表和图表创建篇幅较长、难度较大,会在之后给他们两个分别写篇教程。
在这之前,必须重新把官网摆一次。官网+help函数+dir函数简直是学习的好帮手。
?? dir函数:新手到大师的进阶之路
?? 官网:https://openpyxl.readthedocs.io/en/stable/
下面我们一起来看吧。
01
批注
1、导入
from?openpyxl.comments?import?Comment
Comment(text,?author,?height=79,?width=144)
参数说明:
text?????#?批注的内容,必填
author???#?批注的作者,必填。
height???#?批注框高,默认79。
width????#?批注框宽,默认144。
2、实例
from?openpyxl?import?Workbook
from?openpyxl.comments?import?Commentwb?=?Workbook()
ws?=?wb.activews["A1"]?=?'默认'
ws["B2"]?=?'批注'
ws["C3"]?=?'批注'#在B2单元格设置批注
comment_B2?=?Comment('这是默认的批注',?'山月')
ws["B2"].comment?=?comment_B2#在C3单元格设置批注
ws["C3"].comment?=?Comment('设置了高宽',?'山月',?height=50,?width=80)#?获取批注的信息
print(comment_B2.text)?????#?获取B2单元格批注的内容,结果--->>>这是默认的批注
print(comment_B2.author)???#?获取B2单元格批注的作者,结果--->>>山月wb.save('实例.xlsx')
效果:
02
表格
1、创建表
1)表格样式设置
name:样式名称
'''
可选项:
"TableStyleMedium1"?-?"TableStyleMedium28"
"TableStyleLight1"?-?"TableStyleLight21"
"TableStyleDark1"?-?"TableStyleDark11"
'''showRowStripes=True:显示镶边行
showColumnStripes=True:显示镶边列
showFirstColumn=True:显示表格中第一列的特殊格式
showLastColumn=True:显示表格中最后一列的特殊格式
样式名称对应的样式:
2)实例
from?openpyxl?import?Workbook
from?openpyxl.worksheet.table?import?Table,?TableStyleInfowb?=?Workbook()
ws?=?wb.activedata?=?[
????["Fruit",?"2011",?"2012",?"2013",?"2014"],
????['Apples',?10000,?5000,?8000,?6000],
????['Pears',???2000,?3000,?4000,?5000],
????['Bananas',?6000,?6000,?6500,?6000],
????['Oranges',??500,??300,??200,??700],
]#?在表中写入数据
for?row?in?data:
????ws.append(row)tab?=?Table(displayName="Table1",?ref="A1:E5")??#?表名称和数据区域
# tab.headerRowCount = False ??#?省略标题行。如果不省略,标题行数据默认是第一行,注意标题行数据必须得是字符串,否则会报错。#?设置表样式
style?=?TableStyleInfo(name="TableStyleMedium9",?showFirstColumn=False,
???????????????????????showLastColumn=False,?showRowStripes=False,?showColumnStripes=False)
tab.tableStyleInfo?=?stylews.add_table(tab)?#?添加表wb.save("实例.xlsx")
效果:
2、操作表
#获取所有表信息
ws.tables
#获取指定表信息
ws.tables["Table1"]?#Table1为表名称
#遍历所有表信息
for?table?in?ws.tables.values():
???print(table)#获取工作表中所有表的表名和范围
ws.tables.items()???
#遍历表中表名
for?table?in?ws.tables:
???print(table)#删除表
del?ws.tables["Table1"]?#Table1为表名称#返回工作表中的表数
len(ws.tables)
03
条件格式
Excel支持三种不同类型的条件格式:内置、标准和自定义:
内置的条件格式将特定的规则与预定义的样式相结合;
标准条件格式将特定规则与自定义格式相结合;
自定义格式将自定义的规则与自定义格式相结合。
1、格式的使用
1)创建使用规则
2)使用规则
worksheet.conditional_formatting.add(range_string,?cfRule)?参数说明:
range_string:应用条件格式的单元格区域
cfRule:要应用的条件格式规则
2、内置格式
内置条件格式有:ColorScale(色阶),IconSet(图标集),DataBar(数据条)。
其中三种内置格式里的参数cfvo是一个由【openpyxl.formatting.rule.FormatObject】对象组成的序列(列表或元组)。
FormatObject对象的语法:
from?openpyxl.formatting.rule?import?FormatObject
FormatObject(type,?val=None,?gte=None,?extLst=None)参数:
val:值,是个浮点型
type:可选项有:百分比(percent),最小值(min),百分点值(percentile),公式(formula),最大值(max),数字(num)
1、ColorScale
色阶作为一种直观的指示,可以帮助了解数据分布和数据变化。
有两种选择:
双色刻度:使用两种颜色的渐变来帮助您比较单元格区域。颜色的深浅表示值的高低。
三色刻度:使用三种颜色的渐变来帮助您比较单元格区域。颜色的深浅表示值的高、中、低。
1)语法
#?1)通过ColorScale创建ColorScale规则
from?openpyxl.formatting.rule?import?ColorScale
ColorScale(cfvo=None,?color=None)?#创建色阶#?2)通过ColorScaleRule创建使用ColorScale规则
from?openpyxl.formatting.rule?import?ColorScaleRule
ColorScaleRule(start_type=None,?start_value=None,?start_color=None,?mid_type=None,?mid_value=None,?mid_color=None,?end_type=None,?end_value=None,?end_color=None)
2)实例
from?openpyxl?import?Workbook
from?openpyxl.formatting.rule?import?ColorScale,?FormatObject
from?openpyxl.formatting.rule?import?Rule
from?openpyxl.styles?import?Colorwb?=?Workbook()
ws?=?wb.activefirst?=?FormatObject(type='min')
last?=?FormatObject(type='max')#?创建双色刻度
colors?=?[Color('EE1111'),?Color('00AA00')]
cs2?=?ColorScale(cfvo=[first,?last],?color=colors)#?创建三色刻度
mid?=?FormatObject(type='num'?,?val=40)
colors.insert(1,?Color('0000AA'))
cs3?=?ColorScale(cfvo=[first,?mid,?last],?color=colors)#创建使用双色刻度的规则
rule?=?Rule(type='colorScale',?colorScale=cs2)
ws.conditional_formatting.add('A1:A10',?rule)?#应用规则#创建使用三色刻度的规则
rule?=?Rule(type='colorScale',?colorScale=cs3)
ws.conditional_formatting.add('B1:B10',?rule)?#应用规则wb.save("实例.xlsx")
等同于:
from?openpyxl?import?Workbook
from?openpyxl.formatting.rule?import?ColorScaleRulewb?=?Workbook()
ws?=?wb.active#?创建使用双色刻度
ws.conditional_formatting.add('A1:A10',
????????????ColorScaleRule(start_type='min',?start_color='EE1111',
??????????????????????????end_type='max',?end_color='00AA00')
??????????????????????????)#?创建使用三色刻度
ws.conditional_formatting.add('B1:B10',
???????????????ColorScaleRule(start_type='min',?start_color='EE1111',
???????????????????????????mid_type='num',?mid_value=40,?mid_color='0000AA',
???????????????????????????end_type='max',?end_color='00AA00')
?????????????????????????????)wb.save("实例.xlsx")
效果:
2、IconSet
使用图标集可以对数据进行注释,并可以按阈值将数据分为三到五个类别。 每个图标代表一个值的范围。
例如,在三向箭头图标集中,绿色的上箭头代表较高值,黄色的横向箭头代表中间值,红色的下箭头代表较低值。
图标集名称:注意图标集名称前的数字是说这个图标集有几个图标,想设置含几个图标的图标集就得把数据分为几个类别。
1)语法
#?1)通过?IconSet创建IconSet?规则
from?openpyxl.formatting.rule?import?IconSet
classopenpyxl.formatting.rule.IconSet(iconSet=None,?showValue=None,?percent=None,?reverse=None,?cfvo=None)?#创建IconSet
'''
iconSet可选项:4Rating,3Symbols,3Symbols2,4ArrowsGray,5ArrowsGray,
5Arrows,3TrafficLights2,3ArrowsGray,3TrafficLights1,5Rating,
3Signs,3Flags,3Arrows,4RedToBlack,4TrafficLights,5Quarters,4Arrows
'''#?2)通过IconSetRule创建使用IconSet规则
from?openpyxl.formatting.rule?import?IconSetRule
IconSetRule(icon_style=None,?type=None,?values=None,?showValue=None,?percent=None,?reverse=None)
2)实例
from?openpyxl?import?Workbook
from?openpyxl.formatting.rule?import?IconSet,?FormatObject
from?openpyxl.formatting.rule?import?Rulewb?=?Workbook()
ws?=?wb.active#?创建一个3图标的图标集
first?=?FormatObject(type='num',?val=0)
second?=?FormatObject(type='num',?val=33)
third?=?FormatObject(type='num',?val=67)
iconset?=?IconSet(iconSet='3Arrows',?cfvo=[first,?second,?third])#?将图标集赋给规则
rule?=?Rule(type='iconSet',?iconSet=iconset)
ws.conditional_formatting.add('A1:A10',?rule)?#应用规则wb.save("实例.xlsx")
等同于:
from?openpyxl?import?Workbook
from?openpyxl.formatting.rule?import?IconSetRulewb?=?Workbook()
ws?=?wb.active#?创建+使用图标集
ws.conditional_formatting.add('A1:A10',
????????????????????????IconSetRule(icon_style='3Arrows',?type='num',?values=[0,?33,?67]))wb.save("实例.xlsx")
效果:
3、DataBar
数据条可帮助查看某个单元格相对于其他单元格的值。
数据条的长度代表单元格中的值。 数据条越长,表示值越高,数据条越短,表示值越低。
1)语法
#通过DataBar创建DataBar规则
from?openpyxl.formatting.rule?import?DataBar
DataBar(minLength=None,?maxLength=None,?showValue=None,?cfvo=None,?color=None)#通过DataBarRule创建使用DataBar规则
from?openpyxl.formatting.rule?import?DataBarRule
DataBarRule(start_type=None,?start_value=None,?end_type=None,?end_value=None,?color=None,?showValue=None,?minLength=None,?maxLength=None)
2)实例
from?openpyxl?import?Workbook
from?openpyxl.formatting.rule?import?DataBar,?FormatObject
from?openpyxl.formatting.rule?import?Rulewb?=?Workbook()
ws?=?wb.active#?创建数据条
first?=?FormatObject(type='min')
second?=?FormatObject(type='max')
data_bar?=?DataBar(cfvo=[first,?second],?color="638EC6")#将数据条赋给规则
rule?=?Rule(type='dataBar',?dataBar=data_bar)
ws.conditional_formatting.add('A1:A10',?rule)?#应用规则wb.save("实例.xlsx")
等同于:
from?openpyxl?import?Workbook
from?openpyxl.formatting.rule?import?DataBarRulewb?=?Workbook()
ws?=?wb.active#创建使用数据条
ws.conditional_formatting.add('A1:A10',
????????????????????DataBarRule(start_type='min',?end_type='max',?color="638EC6"))wb.save("实例.xlsx")
效果:
3、标准条件格式
标准条件格式有:
Average:平均值
Percent:百分比
Unique or duplicate:唯一值或重复值
Value:值
Rank:排名
1、CellIsRule
基于单元格内容设置条件格式规则。
1)语法
from?openpyxl.formatting.rule?import?CellIsRule
CellIsRule(operator=None,?formula=None,?stopIfTrue=None,?font=None,?border=None,?fill=None)
2)实例
from?openpyxl?import?Workbook
from?openpyxl.styles?import?PatternFill
from?openpyxl.formatting.rule?import?CellIsRulewb?=?Workbook()
ws?=?wb.active#?创建填充
redFill?=?PatternFill(start_color='EE1111',end_color='EE1111',fill_type='solid')#?单元格小于C1的值的条件格式
ws.conditional_formatting.add('B2:B10',
????????????CellIsRule(operator='lessThan',?formula=['B$1'],?stopIfTrue=True,?fill=redFill))#?单元格介于1-5之间的条件格式
ws.conditional_formatting.add('D2:D10',
????????????CellIsRule(operator='between',?formula=['1','5'],?stopIfTrue=True,?fill=redFill))wb.save("实例.xlsx")
效果:
2、FormulaRule
基于公式设置条件格式规则。
1)语法
from?openpyxl.formatting.rule?import?FormulaRule
FormulaRule(formula=None,?stopIfTrue=None,?font=None,?border=None,?fill=None)
2)实例
from?openpyxl?import?Workbook
from?openpyxl.styles?import?PatternFill
from?openpyxl.formatting.rule?import?FormulaRulewb?=?Workbook()
ws?=?wb.active#?创建填充
redFill?=?PatternFill(start_color='EE1111',end_color='EE1111',fill_type='solid')#?B1为空白的条件格式
ws.conditional_formatting.add('B2:B10',
????????????FormulaRule(formula=['ISBLANK(B$1)'],?stopIfTrue=True,?fill=redFill))#?D1=0的条件格式
ws.conditional_formatting.add('D2:D10',
????????????FormulaRule(formula=['D$1=0'],?fill=redFill))wb.save("实例.xlsx")
效果:
3、DifferentialStyle
差异化样式设置。
1)语法
from?openpyxl.styles.differential?import?DifferentialStyle
DifferentialStyle(font=None,?numFmt=None,?fill=None,?alignment=None,?border=None,?protection=None,?extLst=None)
2)实例
from?openpyxl?import?Workbook
from?openpyxl.formatting?import?Rule
from?openpyxl.styles?import?PatternFill,?Font
from?openpyxl.styles.differential?import?DifferentialStylewb?=?Workbook()
ws?=?wb.active#?创建字体、填充格式
red_text?=?Font(bold=True)
red_fill?=?PatternFill(bgColor="EE1111")#?单元格包含文本【light】时的条件格式
dxf?=?DifferentialStyle(font=red_text,?fill=red_fill)
rule?=?Rule(type="containsText",?operator="containsText",?text="light",?dxf=dxf)
rule.formula?=?['NOT(ISERROR(SEARCH("light",A1)))']?#如果单元格包含【light】值为True,反之,为False
ws.conditional_formatting.add('A1:F10',?rule)wb.save("实例.xlsx")
效果:
04
公式
1、openpyxl支持的公式
查看openpyxl支持写的excel 函数公式:
from?openpyxl?import?load_workbook
from?openpyxl.utils?import?FORMULAE
print(FORMULAE)
结果:
2、解析公式
1、Tokenizer
Excel工作表公式的标记器。将表示Excel公式的str字符串转换为“Token”对象序列。
1、语法
Tokenizer(formula)
说明:
formula:要标记化的公式,字符串格式。
标记器定义了一个方法【._parse()】将公式解析为标记,然后可以通过【.items】访问这些标记。
**【.items】返回的是一个Token对象序列,**Token对象有三个属性:
1).value:产生此标记的公式的子字符串。
2).type: 表示的标记类型, 可以是:
3).subtype:上面的一些标记类型使用子类型来提供关于标记的额外信息。可能的子类型有:
2、实例
from?openpyxl.formula?import?Tokenizer
tok?=?Tokenizer("=IF($A$1,'then?True',MAX(DEFAULT_VAL,'Sheet?2'!B1))")
print("
".join("%12s%11s%9s"?%?(t.value,?t.type,?t.subtype)?for?t?in?tok.items))
结果:
2、Translator
将公式从一个位置转移到另一个位置
1、语法
Translator(formula,?origin)
'''
定义的方法:
get_tokens(self)
translate_formula(self,?dest=None,?row_delta=0,?col_delta=0)
'''
2、实例
from?openpyxl?import?Workbook
from?openpyxl.formula.translate?import?Translatorwb?=?Workbook()
ws?=?wb.active
ws['F2']?=?"=SUM(B2:E2)"#?将一列公式向右移动
ws['G2']?=?Translator("=SUM(B2:E2)",?origin="F2").translate_formula("G2")move_results?=?ws['G2'].value
print(move_results)???#?--->>>?=SUM(C2:F2)
05
筛选和排序
注意:只会将相关指令添加到文件中,不会实际过滤或排序。
1、语法
AutoFilter(ref=None,?filterColumn=(),?sortState=None,?extLst=None)'''
ref?(string):筛选排序的?单元格范围方法:
add_filter_column(col_id,?vals,?blank=False)
?#为指定列添加筛选
?col_id?(int)?:?0表示第一列
?vals?(str[]):?要显示的值列表
?blank?(bool)?:?如果为?True,则显示具有空白单元格的行(默认?=``False``)
??
add_sort_condition(ref,?descending=False)
?#为指定的单元格范围添加排序条件
?ref?(string):?单元格范围
?descending?(bool):?是否降序排序,默认为False,也就是升序排序。True:降序排序
'''
2、实例
from?openpyxl?import?Workbookwb?=?Workbook()
ws?=?wb.activedata?=?[
????["Fruit",?"Quantity"],
????["Kiwi",?3],
????["Grape",?15],
????["Apple",?3],
????["Peach",?3],
????["Pomegranate",?3],
????["Pear",?3],
????["Tangerine",?3],
????["Blueberry",?3],
????["Mango",?3],
????["Watermelon",?3],
????["Blackberry",?3],
????["Orange",?3],
????["Raspberry",?3],
????["Banana",?3]
]#?按行写入数据
for?r?in?data:
????ws.append(r)#?设置筛选排序的单元格区域
ws.auto_filter.ref?=?"A1:B15"#?筛选第1列里值是Kiwi/Apple/Mango的
ws.auto_filter.add_filter_column(0,?["Kiwi",?"Apple",?"Mango"])#?按B列的值升序排序
ws.auto_filter.add_sort_condition("B2:B15")wb.save("实例.xlsx")
效果:
06
验证单元格
1、语法
2、实例
from?openpyxl?import?Workbook
from?openpyxl.worksheet.datavalidation?import?DataValidation#?创建我们将使用的工作簿和工作表
wb?=?Workbook()
ws?=?wb.active#?使用列表验证创建数据验证对象
dv?=?DataValidation(type="list",?formula1='"Dog,Cat,Bat"',?allow_blank=True)#?出错警告
dv.error?='您的条目不在列表中'??#?错误信息
dv.errorTitle?=?'无效条目'??#?标题#?输入信息
dv.prompt?=?'请从列表中选择一个值'???#?输入信息
dv.promptTitle?=?'值输入'???#?标题#?将数据验证对象添加到工作表中
ws.add_data_validation(dv)#?创建一个单元格,并将它们添加到数据验证对象中
c1?=?ws["A1"]
c1.value?=?"Dog"
dv.add(c1)#?将验证应用于一系列单元格
dv.add('B1:B1048576')?#?这与整个B列相同wb.save('实例.xlsx')
效果:
3、其他验证示例
任意整数:
dv?=?DataValidation(type="whole")任何大于?100?的整数:
dv?=?DataValidation(type="whole",
????????????????????operator="greaterThan",
????????????????????formula1=100)
????????????????????
任何十进制数:
dv?=?DataValidation(type="decimal")0?到?1?之间的任何十进制数:
dv?=?DataValidation(type="decimal",
????????????????????operator="between",
????????????????????formula1=0,
????????????????????formula2=1)任何日期:
dv?=?DataValidation(type="date")任何时间:
dv?=?DataValidation(type="time")最多?15?个字符的任意字符串:
dv?=?DataValidation(type="textLength",
????????????????????operator="lessThanOrEqual"),
????????????????????formula1=15)单元格范围验证:
from?openpyxl.utils?import?quote_sheetname
dv?=?DataValidation(type="list",
????????????????????formula1="{0}!$B$1:$B$10".format(quote_sheetname(sheetname))
????????????????????)自定义规则:
dv?=?DataValidation(type="custom",
????????????????????formula1"=SOMEFORMULA")
07
定义名称
可为单元格区域、函数、常量或表格定义名称。
一旦采用了在工作簿中使用名称的做法,便可轻松地更新、审核和管理这些名称。
1、语法
2、实例
import?openpyxl
from?openpyxl.workbook.defined_name?import?DefinedNamewb?=?openpyxl.Workbook()
ws=wb.activews["A1"]?=?5?#?在A1写入5#?为A1单元格创建名称:test
sheetid?=?wb.sheetnames.index('Sheet')
test_definedname?=?DefinedName('test',?attr_text='Sheet!$A$1',?localSheetId=sheetid)
wb.defined_names.append(test_definedname)ws["C3"]?=?"=test"??????#使用名称test#?获取名称信息
print(wb.defined_names.localnames(sheetid))?#?返回--->>?['test']
print(wb.defined_names.get('test',?sheetid).attr_text)?#?返回--->>?Sheet!$A$1definedname_results?=?test_definedname.destinations??#?test_definedname.destinations:返回(工作表标题、单元格范围)元组的生成器
print(list(definedname_results))?#?返回--->>?[('Sheet',?'$A$1')]wb.save('实例.xlsx')
效果:
08
分级显示
可创建行的分级显示、列的分级显示或者行和列的分级显示。
1、语法
#??行的分级显示
worksheet.row_dimensions#?列的分级显示
worksheet.column_dimensions#?行/列分级显示的方法
group(start,?end=None,?outline_level=1,?hidden=False)
'''
start?:要分组的第一行或第一列(强制)
end?:要分组的最后一行或最后一列(可选,默认开始)
outline_level?:大纲级别
hidden?:该组是否应该隐藏在打开的工作簿上
'''
2、实例
import?openpyxl
wb?=?openpyxl.Workbook()
ws?=?wb.activews.column_dimensions.group('A','D',?hidden=True)??#?列分组
ws.row_dimensions.group(1,10,?hidden=True)?#行分组wb.save('实例.xlsx')
效果:
09
设置
1、冻结窗格设置
ws.freeze_panes?=?'B1'??#?冻结首列
ws.freeze_panes?=?'A2'??#?冻结首行
ws.freeze_panes?=?'B2'??#?冻结首行与首列
2、页面设置
ws.page_setup.orientation?=?'landscape'????#?纸张方向:'landscape:横向',?'default:默认',?'portrait:纵向'ws.page_setup.paperSize?=?ws.PAPERSIZE_A3??#?纸张大小设置成A3
'''
设置成A3大小也可以这样:ws.page_setup.paperSize?='8'
其它纸张大小设置选项:
??信纸:ws.PAPERSIZE_LETTER/'1'
??Tabloid:ws.PAPERSIZE_TABLOID?/?'3'
??法律专用纸:ws.PAPERSIZE_LEGAL?/?'5'?
??Statement:ws.PAPERSIZE_STATEMENT/'6'
??Executive:ws.PAPERSIZE_EXECUTIVE?/?'7'
??A3:ws.PAPERSIZE_A3/'8'
??A4:ws.PAPERSIZE_A4/'9'
??A5:ws.PAPERSIZE_A5?/?'11'
??B4(JIS):'12'
??B5(JIS):'13'
'''ws.page_setup.fitToHeight?=?2???#?缩放的页高
ws.page_setup.fitToWidth?=?2????#?缩放的页宽
ws.page_setup.draft?=?True??#?草稿品质,默认False。设置:True
ws.page_setup.scale?=?70???#?设置缩放比例,比如值是70则为缩放70%
ws.page_setup.blackAndWhite?=?True?#?设置单色打印,默认False,设置Truews.page_setup.pageOrder=?'overThenDown'??#?打印顺序设置,可设置项:'overThenDown(先行后列)',?'downThenOver(先列后行)'ws.page_setup.cellComments?=?'asDisplayed'??#?设置批注,默认无。可设置值:?'asDisplayed:如同工作表中的显示',?'atEnd:工作表末尾'ws.page_setup.useFirstPageNumber?=?True??#?启动起始页码设置
ws.page_setup.firstPageNumber?=?2???#?起始页码设置为2.注意首先要设置useFirstPageNumber为Truews.page_setup.usePrinterDefaults?=?True??#?启动错误单元格打印
ws.page_setup.errors?=?'dash'????#??错误单元格打印的选项:'NA'(#N/A),?'dash'(--),?'displayed'(显示值),?'blank'(空白)。要先启动错误单元格打印ws.page_setup.fitToPage?=?True??#???缩放设置为【调整为】
ws.page_setup.fitToHeight?=?2???#???缩放的页高,缩放要先设置为【调整为】
ws.page_setup.fitToWidth?=?2????#???缩放的页宽,缩放要先设置为【调整为】
3、视图设置
ws.sheet_view.showGridLines?=?False??#隐藏网格线
ws.sheet_view.showRowColHeaders=?False??#?隐藏行号、列标
ws.sheet_view.zoomScale?=?80????#?缩放比例设置
ws.sheet_view.zoomScaleSheetLayoutView?=?70??#?分页预览缩放比例,范围:10-400
ws.sheet_view.zoomScalePageLayoutView?=?90?#?页面布局缩放比例
ws.sheet_view.rightToLeft?=?True????#?设置从右向左
ws.sheet_view.showFormulas?=?True???#?显示公式
ws.sheet_view.showZeros?=?False?????#?0值不显示
ws.sheet_view.topLeftCell?=?'B3'????#?左上角单元格设置。注意,不会删除之前的单元格
ws.sheet_view.showRuler?=?False?????#?页眉布局视图下不显示标尺,默认显示
ws.sheet_view.view?=?'normal'???#?视图设置。默认普通视图:'normal':普通视图,?'pageBreakPreview':分页预览视图,?'pageLayout':页眉布局视图
ws.sheet_view.windowProtection?=?True???#?是否设置窗口保护,默认不设置。设置了之后【视图】选项卡里的新建/冻结/拆分窗口不能使用
ws.sheet_view.showOutlineSymbols?=?True?????#?显示大纲符号ws.sheet_view.defaultGridColor?=?False??#?网格线颜色是否设置成默认
ws.sheet_view.colorId?=?5???#?网格线颜色设置,范围:0-63。如果要生效,得把默认网格线颜色设置成False#拆分设置
ws.sheet_view.pane?=?【openpyxl.worksheet.views.Pane】对象
'''
Pane对象语法:
from?openpyxl.worksheet.views?import?Pane
Pane(xSplit=None,?ySplit=None,?topLeftCell=None,?activePane='topLeft',?state='split')
'''
4、打印设置
#居中方式设置
ws.print_options.horizontalCentered?=?True??#?设置水平居中方式
ws.print_options.verticalCentered?=?True????#?设置垂直居中方式#页眉和页脚设置,比如设置左页眉
ws.oddHeader.left.text?=?"Page?&[Page]?of?&N"???#?格式为:Page?&[页码]?of?&[总页数]
ws.oddHeader.left.size?=?14?????????#?14字号
ws.oddHeader.left.font?=?"Tahoma,Bold"??????#?字体Tahoma,加粗
ws.oddHeader.left.color?=?"CC3366"??????#?颜色设置#打印标题
ws.print_title_cols?=?'A:B'?#?左端标题列
ws.print_title_rows?=?'1:1'?#?顶端标题行#打印区域
ws.print_area?="A1:F10"
5、日期、时间设置
在XLSX文件中,日期和时间可以用两种不同的方式来存储:ISO 8601格式的字符串、单个数字。
1、ISO 8601格式
如果你想在openpyxl 写入文件时以 ISO 8601 格式存储日期和时间,可以将工作簿的 iso_dates 标志设置为 True。
workbook.iso_dates?=?True
2、1900 和 1904 日期系统
XLSX 文件的日期系统决定了如何解释单个数字表示的日期和时间。
XLSX 文件有两种日期系统:
在 1900 日期系统(默认)中,参考日期(编号为 1)是 1900-01-01。
在 1904 日期系统中,参考日期(编号为 0)是 1904-01-01。
获得/更改工作簿的日期系统:
import?openpyxl
wb?=?openpyxl.Workbook()
if?wb.epoch?==?openpyxl.utils.datetime.CALENDAR_WINDOWS_1900:
????print("工作薄默认使用的是?1900?日期系统")#?将其设置为1904日期系统:
wb.epoch?=?openpyxl.utils.datetime.CALENDAR_MAC_1904
完结撒花???
祝大家学习愉快。如果觉得对你有所帮助的话,希望能分享给更多人。
已经到底啦(≧▽≦*)/
往期推 荐
Python自动化办公:openpyxl教程(基础)
2022-01-18
[这里是图片025]
如何用Python做日历?
2022-01-10
[这里是图片026]
Python实战:个人贷款计算器
2022-01-14
[这里是图片027]
年会将近?赶紧学学如何用Python做个抽奖界面
2022-01-02
[这里是图片028]
您的“点赞”、“在看”和 “分享”是我们产出的动力。
Python自动化办公:openpyxl教程(进阶)相关推荐
- python自动化办公 百度网盘-Python自动化办公实战教程2020最新带源码
资源目录: 视频 001_Excel_xlrd读_xlwt写.mp4 003_Excel_案例_统计每位同学总分.mp4 004_MySQL_我为什么不建议学.mp4 005_Excel_更灵活的操作 ...
- python自动化办公入门书籍-Python自动化办公实战教程2020最新带源码
资源目录: 视频 001_Excel_xlrd读_xlwt写.mp4 003_Excel_案例_统计每位同学总分.mp4 004_MySQL_我为什么不建议学.mp4 005_Excel_更灵活的操作 ...
- python自动化办公入门教程(办公自动化教程操作)
日常办公中,无论你是程序员还是普通文职人员,操作 Word 一定在你的工作中占了非常大的比例.项目文档.需求分析文档.合同报价.方案等等,这一系列都需要在 Word 中进行完成.但如何更高效灵活的使用 ...
- Python自动化办公:openpyxl教程(基础)
在后台回复[阅读书籍] 即可获取python相关电子书~ Hi,我是山月. 前面给大家介绍了xlrd.xlwt的教程?? Python自动化办公:xlrd万字教程 Python自动化办公:xlwt万字 ...
- Python自动化办公:openpyxl绘制图表
在后台回复[阅读书籍] 即可获取python相关电子书~ Hi,我是山月. 之前给大家分享了openpyxl的基础和进阶教程: Python自动化办公:openpyxl教程(基础) Python自动化 ...
- Python自动化办公:word文件操作教程
在后台回复[阅读书籍] 即可获取python相关电子书~ Hi,我是山月. 之前给大家完整的介绍了用python操作excel的几个库:xlrd.xlwt.openpyxl. 山月也已经整理好了,还没 ...
- 好用到爆的Python自动化办公教程pdf,Python × Excel × Word × PPT 一次搞定
在这个自动化时代,我们有很多重复无聊的工作要做.想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松.那么在本文中,我将向您介绍一个好用到爆的Python自动化办公教程pdf,P ...
- python自动化办公教程书籍_盘点使用Python进行自动化办公所需要的知识点
知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...
- Python自动化办公-Python基础教程
免费学习Python自动化办公教学就在讯飞AI大学堂在线平台 "课程介绍" 6小时的工作10分钟完成,0基础0门槛的Python自动化办公课程 0门槛0基础的自动化办公课程 课程适 ...
最新文章
- 添加本地图层出现要求cross domain policy的错误
- 关于for循环与setTimeout的延迟
- 西天取经为节约成本该裁掉哪位?
- Gitlab 10.1.4 (汉化版) for CentOS 7.4安装
- cuzysdk version 3.1 更新说明
- FFMPEG类库打开流媒体的方法(需要传参数的时候)
- CSS-Box模型--理解与整理
- 安装mysql2005出错_SQL Server 2005 安装遇到的错误提示和解决方法
- python图书馆系统借书验证登陆功能
- 学习Vue3 第一章
- Zabbix调优不完全指南
- 某finecms的csrf漏洞(CVE-2018-18191)
- Rss Feed是什么?
- 直连附加存储服务器,直接连接存储
- 股票查询接口功能是什么?
- Windows 10源码一览!
- android 仿苹果 小组件,安卓仿ios14桌面小部件
- Glyce 一种针对中文汉字结构信息抽取的Embedding策略
- 计算机专业团队研修方案,2019研修活动方案(4篇)
- 纳税人信息0服务器信息1,​财务报表提示没有申报清册信息是什么原因
热门文章
- AVI怎么转换成MP4格式?
- 巴特沃斯滤波器设计案例
- python从文件路径中提取文件名、所在文件夹
- 影集 php,window_如何使用Windows DVD Maker制作自己的动感影集,相信很多朋友自己动手制作过 - phpStudy...
- 华硕主板配置Ubuntu16.04LTS+win10双系统
- 暴风影音笔试题 2014 武汉站
- SecurityManager——Java 语言的保护伞
- 常用Sybase命令
- 【Javascript】Js闭包
- 【小白入门】2019 ICME2019 字节跳动 • 短视频内容理解与推荐竞赛