在文章《Openpyxl----让Excel飞(一)》中,初步了解了Openpyxl的工作表操作和单元格操作。此次,将补充一些单元格操作的常用函数,另外再讲解openpyxl行列操作及表格格式设置上常用的函数。


python openpyxl清空sheet openpyxl清除单元格内容_ide

单元格操作



python openpyxl清空sheet openpyxl清除单元格内容_ide

合并单元格(一)

ws.merge_cells('B1:G1')  #合并B1到G1的单元格

合并单元格(二)

ws.merge_cells(start_row=2, start_column=1, end_row=6, end_column=1)#合并A2到A6的单元格

python openpyxl清空sheet openpyxl清除单元格内容_合并单元格_03

取消合并单元格(一)

ws.unmerge_cells('B1:G1')  #取消合并单元格

取消合并单元格(二)

ws.unmerge_cells(start_row=2, start_column=1, end_row=6, end_column=1) #取消合并单元格

单元格数据格式设置

ws['B1'].number_format = '0.00'  # 定义数据格式为数字,0.00表示显示小数点后两位数,如果需要三位数则0.000ws['C1'].number_format = '0%'  # 定义数据格式为百分比,如需要小数点后几位,则参照上一条语句ws['D1'].number_format = 'yyyy/mm/dd'   #定义数据格式为日期,也可以定义为yy-mm-dd或dd-mm-yy等,只要yymmdd在就可以随意安排ws['E1'].number_format = '0.00E+00'     #定义数据格式为科学计数模式ws['F1'].number_format = '¥#,##0.00'    #定义数据格式为货币,#,##0表示千位逗号隔开ws['H1'].number_format = '@'            #定义数据格式为文本

PS:如果上述格式没有你想要的格式,可以先自己在Excel中设置相应的单元格数据格式,然后通过print(ws['Cell'].number_format)打印单元格数据格式。就可以知道自己想要的数据格式在openpyxl是怎样定义的。



python openpyxl清空sheet openpyxl清除单元格内容_数据格式_04

行列操作



python openpyxl清空sheet openpyxl清除单元格内容_ide

设置列宽

ws.column_dimensions['A'].width = 15   #设置列宽为15

设置行高

ws.row_dimensions[1].height = 15       #设置行高为15

隐藏行列

ws.column_dimensions['A'].hidden = 1    #隐藏 A列ws.row_dimensions[2].hidden = 1     #隐藏第2行

获取最大行数

max_row = ws.max_row    #.max_row可以获取工作表有数据部分的最大行数

获取最大列数

max_col = ws.max_column     #.max_col可以获取工作表有数据部分的最大列数

插入行

ws.insert_rows(2)   #在第二行前插入一行ws.insert_rows(5,2)      #在第五行前插入两行

插入列

ws.insert_cols(2)   #在第二列前插入一列ws.insert_cols(5,2)     #在第五列前插入两列

python openpyxl清空sheet openpyxl清除单元格内容_数据格式_04

格式设置



python openpyxl清空sheet openpyxl清除单元格内容_ide

在开始格式设置之前,需要导入相应的模块

from openpyxl.styles import *

字体设置

ft = Font(name = "Arial",         #选择字体            sz = 12,            #设置字体大小,也可以用size = 来设置            b = True,       #设置加粗,用布尔变量True表示加粗,不定义或者False表示正常,也可以用bold = 来设置            i = True,       #设置斜体,用布尔变量True表示斜体,不定义或者False表示正常,也可以用italic= 来设置            u = 'single',   #增加下划线,'single'表示单下划线,’double'表示双下划线,也可以用underline= 来设置            strike= True,    #设置删除线,用布尔变量True表示增加删除线,不定义或者False表示正常。            color = '0000FF')   #设置颜色,‘0000FF'表示RGB三原色ws['A1'].font = ft    #设置单元格A1字体为ft

对齐方式设置

Align = Alignment(horizontal='center', vertical='center')ws['A1'].Alignment = Align #设置单元格A1竖直与水平方向居中    #  Horizontal 水平对齐常用方式有以下:    #  'left' 左对齐    # 'right'  右对齐    # 'center'  居中    # 'fill'    填充,效果如下    # 'justify'   自动换行    # 'centerContinuous' 居中连续,效果如下    #  Vertical 竖直对齐常用方式有以下:    # ‘top'  顶部对齐    # 'center'  居中对齐    #  'justify'  自动换行     #  'bottom'  底部对齐

对齐方式选fill

python openpyxl清空sheet openpyxl清除单元格内容_openpyxl 插入列_08

对齐方式选centerContinuous

python openpyxl清空sheet openpyxl清除单元格内容_openpyxl模块_09

单元格填充设置

fill = PatternFill("solid",fgColor = '0000FF')#  除了solid,还有下图填充样式可供选择

填充样式

python openpyxl清空sheet openpyxl清除单元格内容_数据格式_10

边框样式设置

side = Side(style='medium', color='000000')     #定义边框的边线,border = Border(top= side,          #定义整个单元格的上下左右边框边线,可定义为不用边线                bottom= side ,                left=side,                right=side)ws.cell(11,11).border = border    #  定义单元格K11边框#  边框边线style 有多种可定义,详见下图

边线样式

python openpyxl清空sheet openpyxl清除单元格内容_openpyxl模块_11

样式打包定义

style1 = NamedStyle(name='style1', font=font1, fill=fill1,                  border=border, alignment=Align1)style2 = NamedStyle(name='style2', font=font2, fill= fill2, border=border, alignment=Align2)ws.cell(14,14).style = style1ws.cell(15,15).style = style2# 假设已经定义好 font1,fill1,font2,fill2,border,Align1,Align2