font = xlwt.Font()
# 创建一个workbook 设置编码
workbook = xlwt.Workbook(encoding='utf-8')
al = xlwt.Alignment()
al.horz = 0x02 # 设置水平居中
al.vert = 0x01 # 设置垂直居中
#设置字体,分两种,加粗不加粗
font = xlwt.Font()
# 字体类型
font.name = 'Arial Unicode MS'
# 字体大小,11为字号,20为衡量单位
font.height = 20 * 8
# 字体加粗
font.bold = False
font_bold = xlwt.Font()
# 字体类型
font_bold.name = 'Arial Unicode MS'
# 字体大小,11为字号,20为衡量单位
font_bold.height = 20 * 8
# 字体加粗
font_bold.bold = True
# 设置背景色
xlwt.add_palette_colour("custom_colour", 0x21)
workbook.set_colour_RGB(0x21, 219, 229, 241)
style = xlwt.easyxf('pattern: pattern solid, fore_colour custom_colour')
style.num_format_str = '_(#,##0_);[Red]-#,##0'
# style.borders = set_boarders()
style.alignment = al
style.font = font_bold
# 设置白色背景色
xlwt.add_palette_colour("white_colour", 0x25)
workbook.set_colour_RGB(0x25, 255, 255, 255)
style_white = xlwt.easyxf('pattern: pattern solid, fore_colour white_colour')
style_white.num_format_str = '_(#,##0_);[Red]-#,##0'
# style_white.borders = set_boarders()
style_white.alignment = al
style_white.font = font
style_white_percent = xlwt.easyxf('pattern: pattern solid, fore_colour white_colour')
# style_white_percent.borders = set_boarders()
style_white_percent.num_format_str = '0%'
style_white_percent.alignment = al
style_white_percent.font = font
style_white2 = xlwt.easyxf('pattern: pattern solid, fore_colour white_colour')
style_white2.num_format_str = '_(#,##0_);[Red]-#,##0'
style_white2.borders = set_boarders()
style_white2.alignment = al
style_white2.font = font
# coding:utf-8
import patterns as patterns
import xlwt
import time
i = 0
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('sheet1', cell_overwrite_ok=True)
# 如果出现报错:Exception: Attempt to overwrite cell: sheetname='sheet1' rowx=0 colx=0
# 需要加上:cell_overwrite_ok=True)
# 这是因为重复操作一个单元格导致的
while i < 64:
# 为样式创建字体
font = xlwt.Font()
# 字体类型
font.name = 'name Times New Roman'
# 字体颜色
font.colour_index = i
# 字体大小,11为字号,20为衡量单位
font.height = 20*11
# 字体加粗
font.bold = False
# 下划线
font.underline = True
# 斜体字
font.italic = True
# 设置单元格对齐方式
alignment = xlwt.Alignment()
# 0x01(左端对齐)、0x02(水平方向上居中对齐)、0x03(右端对齐)
alignment.horz = 0x02
# 0x00(上端对齐)、 0x01(垂直方向上居中对齐)、0x02(底端对齐)
alignment.vert = 0x01
# 设置自动换行
alignment.wrap = 1
# 设置边框
borders = xlwt.Borders()
# 细实线:1,小粗实线:2,细虚线:3,中细虚线:4,大粗实线:5,双线:6,细点虚线:7
# 大粗虚线:8,细点划线:9,粗点划线:10,细双点划线:11,粗双点划线:12,斜点划线:13
borders.left = 1
borders.right = 2
borders.top = 3
borders.bottom = 4
borders.left_colour = i
borders.right_colour = i
borders.top_colour = i
borders.bottom_colour = i
# 设置列宽,一个中文等于两个英文等于两个字符,11为字符数,256为衡量单位
sheet.col(1).width = 11 * 256
# 设置背景颜色
pattern = xlwt.Pattern()
# 设置背景颜色的模式
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
# 背景颜色
pattern.pattern_fore_colour = i
# 初始化样式
style0 = xlwt.XFStyle()
style0.font = font
style1 = xlwt.XFStyle()
style1.pattern = pattern
style2 = xlwt.XFStyle()
style2.alignment = alignment
style3 = xlwt.XFStyle()
style3.borders = borders
# 设置文字模式
font.num_format_str = '#,##0.00'
sheet.write(i, 0, u'字体', style0)
sheet.write(i, 1, u'背景', style1)
sheet.write(i, 2, u'对齐方式', style2)
sheet.write(i, 3, u'边框', style3)
# 合并单元格,合并第2行到第4行的第4列到第5列
sheet.write_merge(2, 4, 4, 5, u'合并')
i = i + 1
book.save('E:/test/testfile/test_file'+time.strftime("%Y%m%d%H%M%S")+'.xls')
参考
https://www.cnblogs.com/lab-zj/p/12095284.html