在后台回复【阅读书籍】

即可获取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教程(进阶)相关推荐

  1. python自动化办公 百度网盘-Python自动化办公实战教程2020最新带源码

    资源目录: 视频 001_Excel_xlrd读_xlwt写.mp4 003_Excel_案例_统计每位同学总分.mp4 004_MySQL_我为什么不建议学.mp4 005_Excel_更灵活的操作 ...

  2. python自动化办公入门书籍-Python自动化办公实战教程2020最新带源码

    资源目录: 视频 001_Excel_xlrd读_xlwt写.mp4 003_Excel_案例_统计每位同学总分.mp4 004_MySQL_我为什么不建议学.mp4 005_Excel_更灵活的操作 ...

  3. python自动化办公入门教程(办公自动化教程操作)

    日常办公中,无论你是程序员还是普通文职人员,操作 Word 一定在你的工作中占了非常大的比例.项目文档.需求分析文档.合同报价.方案等等,这一系列都需要在 Word 中进行完成.但如何更高效灵活的使用 ...

  4. Python自动化办公:openpyxl教程(基础)

    在后台回复[阅读书籍] 即可获取python相关电子书~ Hi,我是山月. 前面给大家介绍了xlrd.xlwt的教程?? Python自动化办公:xlrd万字教程 Python自动化办公:xlwt万字 ...

  5. Python自动化办公:openpyxl绘制图表

    在后台回复[阅读书籍] 即可获取python相关电子书~ Hi,我是山月. 之前给大家分享了openpyxl的基础和进阶教程: Python自动化办公:openpyxl教程(基础) Python自动化 ...

  6. Python自动化办公:word文件操作教程

    在后台回复[阅读书籍] 即可获取python相关电子书~ Hi,我是山月. 之前给大家完整的介绍了用python操作excel的几个库:xlrd.xlwt.openpyxl. 山月也已经整理好了,还没 ...

  7. 好用到爆的Python自动化办公教程pdf,Python × Excel × Word × PPT 一次搞定

    在这个自动化时代,我们有很多重复无聊的工作要做.想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松.那么在本文中,我将向您介绍一个好用到爆的Python自动化办公教程pdf,P ...

  8. python自动化办公教程书籍_盘点使用Python进行自动化办公所需要的知识点

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  9. Python自动化办公-Python基础教程

    免费学习Python自动化办公教学就在讯飞AI大学堂在线平台 "课程介绍" 6小时的工作10分钟完成,0基础0门槛的Python自动化办公课程 0门槛0基础的自动化办公课程 课程适 ...

最新文章

  1. 添加本地图层出现要求cross domain policy的错误
  2. 关于for循环与setTimeout的延迟
  3. 西天取经为节约成本该裁掉哪位?
  4. Gitlab 10.1.4 (汉化版) for CentOS 7.4安装
  5. cuzysdk version 3.1 更新说明
  6. FFMPEG类库打开流媒体的方法(需要传参数的时候)
  7. CSS-Box模型--理解与整理
  8. 安装mysql2005出错_SQL Server 2005 安装遇到的错误提示和解决方法
  9. python图书馆系统借书验证登陆功能
  10. 学习Vue3 第一章
  11. Zabbix调优不完全指南
  12. 某finecms的csrf漏洞(CVE-2018-18191)
  13. Rss Feed是什么?
  14. 直连附加存储服务器,直接连接存储
  15. 股票查询接口功能是什么?
  16. Windows 10源码一览!
  17. android 仿苹果 小组件,安卓仿ios14桌面小部件
  18. Glyce 一种针对中文汉字结构信息抽取的Embedding策略
  19. 计算机专业团队研修方案,2019研修活动方案(4篇)
  20. 纳税人信息0服务器信息1,​财务报表提示没有申报清册信息是什么原因

热门文章

  1. AVI怎么转换成MP4格式?
  2. 巴特沃斯滤波器设计案例
  3. python从文件路径中提取文件名、所在文件夹
  4. 影集 php,window_如何使用Windows DVD Maker制作自己的动感影集,相信很多朋友自己动手制作过 - phpStudy...
  5. 华硕主板配置Ubuntu16.04LTS+win10双系统
  6. 暴风影音笔试题 2014 武汉站
  7. SecurityManager——Java 语言的保护伞
  8. 常用Sybase命令
  9. 【Javascript】Js闭包
  10. 【小白入门】2019 ICME2019 字节跳动 • 短视频内容理解与推荐竞赛