1.1 移动数据
sheet.move_range(cell_range, rows=0, cols=0, translate=False):
- cell_range 是一个区域
- rows 表示相对移动的行数(正数向下,负数向上)
- cols 表示相对移动的列数(正数向右,负数向左)
- translate 对于有公式的,False表示不调整,True 表示调整。
wb: Workbook = load_workbook("d:/test.xlsx")
sh: Worksheet = wb.active
sh.move_range("a1:c3", 5, 5, True)
wb.save("d:/1.xlsx")
1.2 冻结空格
sheet.freeze_panes = "c2"
表示冻结C2上面的行,C2左边的列。
注意:'A1' 不符合规定,因为它上面没有行,左面没有列了
wb: Workbook = load_workbook("d:/test.xlsx")
sh: Worksheet = wb.active
sh.freeze_panes = "c2"
wb.save("d:/1.xlsx")
如果要取消冻结,直接赋值为None即可。
sheet.freeze_panes = None
1.3 合并单元格
1.3.1 合并
merge_cells(range_string=None, start_row=None, start_column=None, end_row=None, end_column=None):
- range_string 指定范围,如:'a1:g20'
- start_row 开始行
- start_column 开始列
- end_row 结束行
- end_column 结束列
wb: Workbook = load_workbook("d:/test.xlsx")
sh: Worksheet = wb.active
sh.merge_cells('a1:b5')
wb.save("d:/1.xlsx")
wb: Workbook = load_workbook("d:/test.xlsx")
sh: Worksheet = wb.active
sh.merge_cells(start_row=1, start_column=1, end_row=3, end_column= 3)
wb.save("d:/1.xlsx")
1.3.2 取消合并
与合并方法的参数一样:
unmerge_cells(range_string=None, start_row=None, start_column=None, end_row=None, end_column=None):
1.4 写入公式
sheet["c1"] = '=sum(a1:b1)'
sh.cell(2,3).value = '=sum(a2:b2)'
就是向单元格写公式,写的方法和其它数据一样,只不是值是公式。
注意:公式前面有等号。
wb: Workbook = load_workbook("d:/test.xlsx")
sh: Worksheet = wb.active
sh["c1"] = '=sum(a1:b1)'
sh.cell(2,3).value = '=sum(a2:b2)'
wb.save("d:/1.xlsx")
注意:在读取的时候,如果是公式则读取到的不是公式计算后的值。
需要把data_only设置为True,这时读取的才是值。
wb: Workbook = load_workbook("d:/test.xlsx",data_only=True)
1.5 分级显示
对某些行或列分成一组,或称为组合。
1.5.1 按列分组
sheet.column_dimensions.group('开始列','结束列', 级别, hidden=False)
- 级别一般是1-7
- hidden表示隐藏这一组
wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active
sh.column_dimensions.group('a', 'f', 1, hidden=True)
wb.save("1.xlsx")
1.5.2 按行分组
sheet.row_dimensions.group(开始行,结束行,级别,hidden=False)
参数同按列分组
wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active
sh.row_dimensions.group(1, 100, 1, hidden=True)
wb.save("1.xlsx")
1.6 批注
批注是一个对象,创建批注对象之后,可以添加到单元格。
类型:openpyxl.comments.Comment
# 参数
def __init__(self, text, author, height=79, width=144):
- 参数:批注内容,作者,高,宽
- 属性:content (批注内容),author, height, width
创建对象之后赋值给单元格的comment 属性。
# 批注类
from openpyxl.comments import Comment
wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active
sh.cell(1,1).comment = Comment('批注内容','作者')
wb.save("1.xlsx")
标签:xlsx,None,openpyxl,PYTHON,column,sh,row,wb
From: https://www.cnblogs.com/three-sheep/p/16993416.html