xlwt介绍和安装
xlwt
是Python中操作Excel的一个库,可以将数据保存成Excel
API Reference:https://xlwt.readthedocs.io/en/latest/api.html#xlwt.Style.easyxf
PyPI:/project/xlwt-fix/
pip install xlwt
在保存之前,可以设置单元格的属性,官网提供了以下6种设置。
此文介绍其中4种:
Font:字体设置Alignment:对准设置Border:边框设置Background:背景设置
文中所有代码链接:/yangyang0126/PythonLearning/tree/master/Python实践/数据可视化/xlwt
创建表格
创建一个表格的流程
定义workbook添加sheet创建一个样式对象style,设置格式(这一步可以省略,出来就是默认格式)给表格赋值保存表格
我们首先创建一个最简单的表格,不做任何格式,内容就是从0-71的数字。
import xlwt# 定义workbookworkbook = 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列,具体内容是icolumn += 1if column > 8:column = 0row += 1# 定义保存Excel的位置和文件名。默认是和代码存在一个路劲下面。workbook.save('CreatExcelTable.xls')
此时运行代码,生成的文件如下所示
能生成一个表格之后,我们开始来设置格式,包括设置字体、居中、边框和背景。
设置格式
1、设置单元格背景
先说设置单元格背景,因为背景设置主要是颜色的设置。这个颜色的识别,是通用的。
我们在设置字体、单元格填充时,会进行颜色的设置。比如将字体设置成红色,将单元格设置成黄色。在xlwt
设置中,每一个颜色,都由相对应的数字表示。具体参照下图,给大家分别展示了,当字体是白色或者黑色时,单元格颜色的显示效果。
颜色对应的序号,字体为白色
颜色对应的序号,字体为黑色
设置表格格式,我们首先要先定义一个样式
# 创建一个样式对象,初始化样式 stylestyle = xlwt.XFStyle()
接着进行背景设置
pattern = xlwt.Pattern()pattern.pattern = xlwt.Pattern.SOLID_PATTERN # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12pattern.pattern_fore_colour = 4 # 给背景颜色赋值
根据上图可知,0
代表黑色
,1
代表白色
,2
代表红色
,以此类推。后续所有涉及颜色的操作,都以此数字代表。颜色参照上面的规则,比如,4,对应的是,深蓝色
设置好之后,把这个背景,应用到刚刚的style
上面去
style.pattern = pattern # 把背景颜色加到表格样式里去
最后,在赋值的时候,把格式带上
sheet.write(row, column, i) # 不带格式sheet.write(row, column, i, style) # 有格式
2、设置字体格式
与上述一致,我们先要先定义一个样式
# 创建一个样式对象,初始化样式 stylestyle = xlwt.XFStyle()
接着进行字体设置
# 为样式创建字体font = xlwt.Font() font.name = 'Calibri' # 设置字体font.colour_index = 4 # 设置字体颜色font.height = 400 # 字体大小
字体大家可以任选,和Excel里面字体的名字匹配就可以颜色参照上面的规则,比如,4,对应的是,深蓝色字体大小也看大家心情啦
设置好之后,把这个字体,应用到刚刚的style
上面去
style.font = font
最后,在赋值的时候,把格式带上
sheet.write(row, column, i) # 不带格式sheet.write(row, column, i, style) # 有格式
完整代码
import xlwtworkbook = xlwt.Workbook() sheet = workbook.add_sheet('Font') # 创建一个样式对象,初始化样式 stylestyle = xlwt.XFStyle() # 为样式创建字体font = xlwt.Font() font.name = 'Calibri' # 设置字体font.colour_index = 4 # 设置字体颜色font.height = 400 # 字体大小# 定义格式-字体style.font = font# 写入数据row = 0 # 行column = 0 # 列for i in range(72): sheet.write(row, column, i, style) # 增加样式if column > 8:column = 0row += 1workbook.save('Font.xls')
此时效果如下图所示,字体是Calibri
,颜色是蓝色
,字体大小是400
我们对字体进行进一步设置,设置粗体、斜体、下划线等
font.name = 'Times New Roman' # 设置字体 font.color_index = color # 设置字体颜色font.height = 400 # 字体大小 font.bold = True # 字体是否为粗体 font.italic = True # 字体是否为斜体 font.underline = True # 字体是否有下划线 font.struck_out =True # 字体中是否有横线
我们来看一下粗体、斜体和下划线的效果。下划线的颜色和粗细,是随着字体走的。字体粗体,下划线也是粗体。
下面是横线效果
3、位置设置
目前我只会设置水平位置
有些文章说,通过al.vert
可以设置垂直位置,我尝试了没效果
后续如果学会了,再来更新
alignment = xlwt.Alignment()alignment .horz = 1# 设置水平位置,0是左对齐,1是居中,2是右对齐# 设置自动换行alignment.wrap = 1style.alignment = alignment
4、边框设置
# 设置边框borders = xlwt.Borders() # Create Borders# DASHED虚线# NO_LINE没有# THIN实线borders.left = xlwt.Borders.DASHED borders.right = xlwt.Borders.DASHED borders.top = xlwt.Borders.DASHED borders.bottom = xlwt.Borders.DASHED borders.left_colour = colorborders.right_colour = colorborders.top_colour = colorborders.bottom_colour = colorstyle.borders = borders
边框颜色随意,这个不多说了。讲一下边框的线条。
有两种定义方式,一种是用DASHED、THIN来表示
# DASHED虚线# NO_LINE没有# THIN实线borders.left = xlwt.Borders.DASHED borders.right = xlwt.Borders.DASHED borders.top = xlwt.Borders.DASHED borders.bottom = xlwt.Borders.DASHED
效果如下
实线边框
虚线边框
还有一种,可以直接用数字表示
# 细实线:1,小粗实线:2,细虚线:3,中细虚线:4,大粗实线:5,双线:6,细点虚线:7# 大粗虚线:8,细点划线:9,粗点划线:10,细双点划线:11,粗双点划线:12,斜点划线:13borders.left = 1borders.right = 2borders.top = 3borders.bottom = 4
这边展示了,不同数字对应的边框样式
根据数字定义边框
参考网址
python3使用xlwt时写入文档字体颜色和边框样式python3.6 xlwt 设置单元格对齐方式python3-xlwt-Excel设置(字体大小、颜色、对齐方式、换行、合并单元格、边框、背景、下划线、斜体、加粗)转载自洋阳酱
原贴地址