[知识积累]python3使用xlwt时写入文档字体颜色和边框样式--转载
可借鉴的网址:https://www.programcreek.com/python/example/39979/xlwt.Alignment
可以直接通过pip安装xlwt
个人理解:
xlwt中对excel操作哦时主要用了font、alignment、pattern、protection这四个。
其中:
font:主要对字体进行操作,比如字体的颜色、大小
alignment:主要是对输入内容之后的对齐方式对齐
borders:每一个单元格的格式
pattern:设置单元格的背景颜色
protection:没用过不太懂意思
一.font对字体写入的颜色设置:
ef setStyle(name, height,color, bold=False): style = xlwt.XFStyle() # 初始化样式 font = xlwt.Font() # 为样式创建字体 # 字体类型:比如宋体、仿宋也可以是汉仪瘦金书繁 font.name = name # 设置字体颜色 font.colour_index = color # 字体大小 font.height = height # 定义格式 style.font = font return style if __name__ == '__main__': # 创建工作簿,并指定写入的格式 f = xlwt.Workbook(encoding='utf8') # 创建工作簿 # 创建sheet,并指定可以重复写入数据的情况.设置行高度 sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False) # 控制行的位置 column = 0; row = 0 # 生成第一行 for i in range(0, 100): # 参数对应:行,列,值,字体样式(可以没有) sheet1.write(column, row, i, setStyle('Times New Roman', 400, i, False)) # 这里主要为了控制输入每行十个内容。为了查看 row = row + 1 if row % 10 ==0: column = column + 1 row = 0 f.save(r'E:\xlwtExCEL.xls') # 保存文档
步骤:
1.创建工作薄对象。
2.设置excel里面工作表的名字
3.通过font定义字体的类型、大小和颜色
4.然后通过sheet1的write方法指定行列并写入内容
效果图:
其中1和9看不清,可能写入的颜色为白色,并不是没有写入。(把那两个单元格的颜色改成黑色就能正常看见了);修改之后的样子
font中其他一些元素的属性:
font.bold = bold # 粗体
font.italic = True # 斜体
font.underline = 10 # 下划线(其中当值为9,整行的填充色为蓝色)
font.struck_out =True # 横线(比如:在一个字中 画上一横)
def set_style(name, height,color, bold=False): style = xlwt.XFStyle() # 初始化样式 font = xlwt.Font() # 为样式创建字体 # 字体类型:比如宋体、仿宋也可以是汉仪瘦金书繁 font.name = name # 是否为粗体 font.bold = bold # 设置字体颜色 font.colour_index = color # 字体大小 font.height = height # 字体是否斜体 font.italic = True # 字体下划,当值为11时。填充颜色就是蓝色 font.underline = 0 # 字体中是否有横线struck_out font.struck_out =True # 定义格式 style.font = font return style if __name__ == '__main__': # 创建工作簿,并指定写入的格式 f = xlwt.Workbook(encoding='utf8') # 创建工作簿 # 创建sheet,并指定可以重复写入数据的情况.设置行高度 sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False) # 控制行的位置 column = 0; row = 0 # 生成第一行 for i in range(0, 100): # 参数对应:行,列,值,字体样式(可以没有) sheet1.write(column, row, i, set_style('汉仪瘦金书繁', 400, i, False)) # 这里主要为了控制输入每行十个内容。为了查看 row = row + 1 if row % 10 ==0: column = column + 1 row = 0 f.save(r'E:\xlwtExCEL.xls') # 保存文档
字体下划underline属性值不为9的效果图:(并有加粗的效果)
字体下划underline属性值为9的效果图:
注 : 看出underline等于某个值时是没有下划线,而等于98时出现双下划线的效果
二.borders中设置元素边框的属性:
def setStyle(name, height,color, bold=False): style = xlwt.XFStyle() # 初始化样式 font = xlwt.Font() # 为样式创建字体 # 字体类型:比如宋体、仿宋也可以是汉仪瘦金书繁 font.name = name # 设置字体颜色 font.colour_index = color # 字体大小 font.height = height # 定义格式 style.font = font # borders.left = xlwt.Borders.THIN # NO_LINE: 官方代码中NO_LINE所表示的值为0,没有边框 # THIN: 官方代码中THIN所表示的值为1,边框为实线 borders = xlwt.Borders() borders.left = color borders.left = xlwt.Borders.THIN borders.right = color borders.top = color borders.bottom = color # 定义格式 style.borders = borders return style if __name__ == '__main__': # 创建工作簿,并指定写入的格式 f = xlwt.Workbook(encoding='utf8') # 创建工作簿 # 创建sheet,并指定可以重复写入数据的情况.设置行高度 sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False) # 控制行的位置 column = 0 row = 0 # 生成第一行 for i in range(0, 100): # 参数对应:行,列,值,字体样式(可以没有) sheet1.write(column, row, i, setStyle('汉仪瘦金书繁', 400, i, True)) # 这里主要为了控制输入每行十个内容。为了查看 row = row + 1 if row % 10 == 0: column = column + 1 row = 0 f.save(r'E:\xlwtExCEL.xls') # 保存文档
效果图:
设置自己喜欢的格式,上面的图应该够用了。
三、pattern设置单元格的颜色背景颜色:
def setStyle(name, height,color, bold=False): style = xlwt.XFStyle() # 初始化样式 font = xlwt.Font() # 为样式创建字体 # 字体类型:比如宋体、仿宋也可以是汉仪瘦金书繁 font.name = name # 设置字体颜色 font.colour_index = color # 字体大小 font.height = height # 定义格式 style.font = font # borders.left = xlwt.Borders.THIN # NO_LINE: 官方代码中NO_LINE所表示的值为0,没有边框 # THIN: 官方代码中THIN所表示的值为1,边框为实线 borders = xlwt.Borders() borders.left = color borders.left = xlwt.Borders.THIN borders.right = color borders.top = color borders.bottom = color # 定义格式 style.borders = borders # 设置背景颜色 pattern = xlwt.Pattern() # 设置背景颜色的模式 pattern.pattern = xlwt.Pattern.SOLID_PATTERN # 背景颜色 pattern.pattern_fore_colour = color style.pattern = pattern return style if __name__ == '__main__': # 创建工作簿,并指定写入的格式 f = xlwt.Workbook(encoding='utf8') # 创建工作簿 # 创建sheet,并指定可以重复写入数据的情况.设置行高度 sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False) # 控制行的位置 column = 0 row = 0 # 生成第一行 for i in range(0, 100): # 参数对应:行,列,值,字体样式(可以没有) sheet1.write(column, row, i, setStyle('汉仪瘦金书繁', 400, i, True)) # 这里主要为了控制输入每行十个内容。为了查看 row = row + 1 if row % 10 == 0: column = column + 1 row = 0 f.save(r'E:\xlwtExCEL.xls') # 保存文档
效果图:
四、alignment对齐方式的设置:
def setStyle(name, height,color, bold=False): style = xlwt.XFStyle() # 初始化样式 font = xlwt.Font() # 为样式创建字体 # 字体类型:比如宋体、仿宋也可以是汉仪瘦金书繁 font.name = name # 设置字体颜色 font.colour_index = color # 字体大小 font.height = height # 定义格式 style.font = font alignment = xlwt.Alignment() alignment.horz = color style.alignment = alignment return style if __name__ == '__main__': # 创建工作簿,并指定写入的格式 f = xlwt.Workbook(encoding='utf8') # 创建工作簿 # 创建sheet,并指定可以重复写入数据的情况.设置行高度 sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False) # 控制行的位置 column = 0 row = 0 # 生成第一行 for i in range(0, 100): # 参数对应:行,列,值,字体样式(可以没有) sheet1.write(column, row, i, setStyle('汉仪瘦金书繁', 400, i, True)) # 这里主要为了控制输入每行十个内容。为了查看 row = row + 1 if row % 10 == 0: column = column + 1 row = 0 f.save(r'E:\xlwtExCEL.xls') # 保存文档
效果图:
注意:有些等于某个值时会有不同的效果
alignment还有其他的属性其他属性:
五、protection的使用不是很明白,网上的解释是:设置保护模式
以上是自己总结的,如果不够好可以私聊别差评,谢谢。后续更新。
小白-->叮咚
下面上传了alignment对齐方式生成的excel表格。
链接: https://pan.baidu.com/s/1o8kPJ2y
密码: dwun