目录
一、xlwt简介
xlwt仅支持 xls 格式的exce,只能新建xls后写入xls文件。
二、xlwt语法
1、模块安装
pip3 install xlwt
2、模块导入
import xlwt
3、向xls文件中写入内容
import xlwt
# 创建一个workbook对象,就相当于创建了一个Excel文件
workbook = xlwt.Workbook(encoding='utf-8',style_compression=0) # encoding:设置编码,可写中文;style_compression:是否压缩,不常用
# 创建一个sheet对象,相当于创建一个sheet页
worksheet = workbook.add_sheet('这是sheet1',cell_overwrite_ok=True) # cell_overwrite_ok:是否可以覆盖单元格,默认为False
# 向sheet页中添加数据:worksheet.write(行,列,值)
worksheet.write(0,0,'我要发财啦') # 第1行第1列写入数据
# 将以上内容保存到指定的文件中
workbook.save('测试文件.xls')
4、设置写入文件的格式
4.1 字体设置(font)
import xlwt
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('这是sheet1')
style = xlwt.XFStyle()# 初始化样式
font = xlwt.Font()# 为样式创建字体(font)
# 指定字体的具体属性(仅列出常用属性)
font.name = '宋' # 指定字体
font.height = 300 # 和excel字体大小比例是1:20
font.bold = True # 字体是否加粗
font.underline = True # 字体是否下划线
font.struck_out = True # 字体是否有横线
font.italic = True # 是否斜体字
font.colour_index = 4 # 字体颜色
# 设定字体样式
style.font = font
# 向sheet页中添加数据
worksheet.write(0,0,'无样式文本')
worksheet.write(0,1,'有样式文本',style)
workbook.save('测试文件.xls')
说明:
-
字体大小
和excel字体大小比例是1:20,假设需要15号字体大小,则需要设置成300 -
字体颜色对照图
4.2 背景颜色设置(pattern)
import xlwt
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook .add_sheet('这是sheet1')
worksheet.write(0,0,'无样式文本')
# 初始化样式
style = xlwt.XFStyle()
# 1. 为样式创建字体(font)
font = xlwt.Font()
# 指定字体的具体属性(仅列出常用属性)
font.name = '宋' # 指定字体
font.height = 300 # 和excel字体大小比例是1:20
font.bold = True # 字体是否加粗
font.underline = True # 字体是否下划线
font.struck_out = True # 字体是否有横线
font.italic = True # 是否斜体字
font.colour_index = 4 # 字体颜色
# 设置style的各个属性的样式
style.font = font # 设定字体样式
worksheet.write(2,0,'有样式文本(字体样式)',style)
# 2. 为样式创建背景图案(pattern)
pattern = xlwt.Pattern()
# 指定背景颜色
pattern.pattern = xlwt.Pattern.SOLID_PATTERN # 设置背景颜色模式
pattern.pattern_fore_colour = 3 # 不同的值代表不同颜色背景
# 设置style的各个属性的样式
style.pattern = pattern # 设定背景图案样式
worksheet.write(4,0,'有样式文本(字体样式+背景图案样式)',style)
workbook .save('测试文件.xls')
4.3 边框设置(borders)
import xlwt
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook .add_sheet('这是sheet1')
# 初始化样式
style = xlwt.XFStyle()
borders = xlwt.Borders()
# 设定边框属性
borders.left = xlwt.Borders.THIN
borders.right = xlwt.Borders.THIN
borders.top = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THIN
# 设定边框样式
style.borders = borders
# 写入数据
worksheet.write(0,0,'无样式文本')
worksheet.write(2,0,'有样式文本(边框样式)',style)
# 保存.xls
workbook.save('测试文件.xls')
4.4 对齐方式设置(alignment)
import xlwt
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook .add_sheet('这是sheet1')
# 初始化样式
style = xlwt.XFStyle()
# 对齐方式的设置(alignment)
alignment = xlwt.Alignment()
# 设置具体的对齐方式 : vert代表垂直对齐方式;horz代表水平对齐方式
alignment.vert = 0x01 # 0x00 上端对齐;0x01 居中对齐(垂直方向上);0x02 底端对齐
alignment.horz = 0x03 # 0x01 左端对齐;0x02 居中对齐(水平方向上);0x03 右端对齐
# 设定设定对齐方式
style.alignment = alignment
# 写入数据
worksheet.write(0,0,'无样式文本')
worksheet.write(2,0,'有样式文本(设定对齐方式)',style)
# 保存.xls
workbook.save('测试文件.xls')
4.5 单元格格式(num_format_str)
日期数据写入excel,单元格为自定义的日期格式
import xlwt
from datetime import datetime
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook .add_sheet('这是sheet1')
date_str = '2022-04-12'
style = xlwt.XFStyle()
num_format_str = 'yyyy/MM/dd'
style.num_format_str = num_format_str
# 写入数据
worksheet.write(0,0,date_str)
worksheet.write(2,0,datetime.strptime(date_str,'%Y-%m-%d').date(),style)
# 保存.xls
workbook.save('测试文件.xls')
4.6 列宽和行高
import xlwt
from datetime import datetime
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook .add_sheet('这是sheet1')
# 写入数据
worksheet.write(0,0,'我是个很长的字符')
worksheet.write(0,4,'我也是个很长的字符哦')
worksheet.col(4).width=256*20 # 设计第4列宽度
# 保存.xls
workbook.save('测试文件.xls')
三、实例应用
四、参考资料
python模块 之 xlwt模块