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,操作成功!!!