python openpyxl批量定义单元格属性

▼魔方 西西 提交于 2020-03-05 23:49:54

openpyxl 作为操作excel 表格的工具,在python中应用比较广泛,但其设置表格单元格属性时,只能一个一个单元格遍历,现将其中的小坑展示给大家

新建表格
wb=Workbook()
新建表单
wbsheet = wb.create_sheet(‘所有课程情况统计’,0)
选中多个单元格
cell_range=wbsheet[‘A1:E43’]
可以用下面的表达方式,转化为单元格范围的字符串
cell_range=wbsheet[get_column_letter(num17+1)+“1:”+get_column_letter(num17+6)+str(row-1)]

当然,要使用前,先import 模块
from openpyxl.utils import get_column_letter, column_index_from_string #根据数字返回字母,根据字母反回列数字

“”"
例:xian = Side(style=‘medium’, color=‘000000’)
style:边框线的风格{‘dotted’,‘slantDashDot’,‘dashDot’,‘hair’,‘mediumDashDot’,
‘dashed’,‘mediumDashed’,‘thick’,‘dashDotDot’,‘medium’,
‘double’,‘thin’,‘mediumDashDotDot’}

border = Border(top=xian, bottom=xian, left=xian, right=xian)

top(上),bottom(下),left(左),right(右):必须是 Side类型
diagonal: 斜线 side类型
diagonalDownd: 右斜线 bool
diagonalDown: 左斜线 bool
“”"

但此时,想用cell_range.border=border 就出错了,因为cell_range选中多个单元格,返回的是一个元组,只能遍历,用如下方法可以遍历:

for cellnum in cell_range:  #返回一个二维元组,一个元组是一行
    for cellnum1 in cellnum:
        cellnum1.border=border

OK,操作成功!!!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!