简介

xlwt是Python中操作Excel的一个库,可以将数据保存成Excel
API Reference:​​​https://xlwt.readthedocs.io/en/latest/api.html#xlwt.Style.easyxf​​​ PyPI:​​https://pypi.org/project/xlwt-fix/​

pip install xlwt
# 简单列子
import xlwt

# 定义workbook
workbook = xlwt.Workbook()

# 添加sheet,这个sheet的名字叫'Style'
sheet = workbook.add_sheet('Style')

# 写入数据
row = 0 # 行
column = 0 # 列
for i in range(72):
sheet.write(row, column, i) # 写入数据,第row行,第column列,具体内容是i
column += 1
if column > 8:
column = 0
row += 1

# 定义保存Excel的位置和文件名。默认是和代码存在一个路劲下面。
workbook.save('CreatExcelTable.xls')

1. 思路

设置表格格式,我们首先要先定义一个样式

my_style = xlwt.XFStyle()

然后对按照下面字体/对齐方式等设置,设置完成后,赋值给xlwt.XFStyle()的对象,例:

# 设置好字体类型
font = xlwt.Font()
font.name = 'name Times New Roman'

2. 自定义样式

2.1 字体

# 设置字体
font = xlwt.Font()

# 字体类型
font.name = 'name Times New Roman'

# 字体颜色
font.color_index = color # 设置字体颜色

# 字体大小,16为字号,20为衡量单位
font.height = 20 * 16

# 字体加粗
font.bold = False

# 下划线
font.underline = True

# 斜体字
font.italic = True

2.2 对齐方式

# 设置单元格对齐方式
alignment = xlwt.Alignment()

# 水平位置:0x01(左端对齐)、0x02(水平方向上居中对齐)、0x03(右端对齐)
alignment.horz = 0x02

# 垂直方向:0x00(上端对齐)、 0x01(垂直方向上居中对齐)、0x02(底端对齐)
alignment.vert = 0x01

2.3 边框

# 设置边框
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 = color
borders.right_colour = color
borders.top_colour = color
borders.bottom_colour =

2.4 颜色

# 字体颜色
font.colour_index = 1

# 边框颜色
borders.left_colour = 1
borders.right_colour = 2
borders.top_colour = 3
borders.bottom_colour = 4

颜色与对应的数字可以参考:

Python:利用xlwt设置Excel单元格格式_python

2.5 背景色

# 设置背景颜色
pattern = xlwt.Pattern()

# 设置背景颜色的模式
pattern.pattern = xlwt.Pattern.SOLID_PATTERN

# 背景颜色
pattern.pattern_fore_colour = 3

3. 案例

import xlwt


def define_style():
font = xlwt.Font()
# 字体类型
font.name = 'name Times New Roman'
# 字体颜色
font.colour_index = 1
# 字体大小,16为字号,20为衡量单位
font.height = 20 * 16
# 字体加粗
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 = 1
borders.right_colour = 2
borders.top_colour = 3
borders.bottom_colour = 4

# 设置列宽,一个中文等于两个英文等于两个字符,11为字符数,256为衡量单位
sheet.col(1).width = 11 * 256

# 设置背景颜色
pattern = xlwt.Pattern()
# 设置背景颜色的模式
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
# 背景颜色
pattern.pattern_fore_colour = 3

# 初始化样式
my_style = xlwt.XFStyle()
my_style.font = font # 设置字体
my_style.alignment = alignment # 设置对齐方式
my_style.borders = borders # 设置边框
my_style.pattern = pattern # 设置背景颜色
return my_style


if __name__ == '__main__':
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('sheet1', cell_overwrite_ok=True)
mystyle = define_style()
sheet.write(0, 0, u'(0,0)', mystyle) # 横坐标,纵坐标,内容,样式
book.save('my_excel.xlsx')