python的xlwt模块的常用方法

时间:2023-03-09 07:21:53
python的xlwt模块的常用方法

工作中需要导出数据为excel格式,使用了xlwt模块,在此记录一下用到的内容。

1. 创建一个表,设置一个sheet

 import xlwt

 workbook = xlwt.Workbook(encoding='utf8')
worksheet = workbook.add_sheet(u'sheet1')

2. 设置列宽,cols_num是列的数目,可以通过修改12这个值,修改列的宽度

 for c in range(cols_num):
worksheet.col(c).width = 256 * 12

3.设置行高,修改800为别的值,可以修改行的高度

 worksheet.row(0).height_mismatch = True
worksheet.row(0).height = 800 # 设置行高

4.设置单元格风格,写成了一个函数。如注释所示,Font()用来设置单元格字体内容,如字体类型、大小等;borders()设置单元格边框线粗细;partern()设置单元格背景颜色;XFStyle()设置风格类型;alignment()用来设置了字体水平居中、垂直居中、自动换行。

 def body_style(pattern=None):
# 设置excel单元格风格
font = xlwt.Font() # Create Font
font.name = "SimSun" # 宋体
font.height = 20 * 12 # 字体大小
style = xlwt.XFStyle() # Create Style
style.alignment.horz = 2 # 字体居中
style.alignment.vert = 1
style.alignment.wrap = 1
if pattern:
pat = xlwt.Pattern()
pat.pattern = xlwt.Pattern.SOLID_PATTERN # 设置背景颜色
pat.pattern_fore_colour = pattern
style.pattern = pat
borders = xlwt.Borders()
borders.left = 1
borders.right = 1
borders.top = 1
borders.bottom = 1
style.font = font
style.borders = borders
return style

5. falsk导出excel

 def down():
excel = excel()
sio = StringIO.StringIO()
excel.save(sio)
resp = make_response(sio.getvalue())
filename = (u'表hh-' + u'-' + time.strftime("%Y-%m-%d", time.localtime(time.time())))
resp.headers["Content-Disposition"] = "attachment; filename={}.xls".format(filename)
resp.headers['Content-Type'] = 'application/x-xls'
return resp

6. 往单元格内写入数据,合并单元格

 worksheet.write(m_row, m_col, u'内容', body_style())
# 合并单元格,前四个参数分别是起止的行列位置
worksheet.write_merge(1, 2, m_col, m_col+3, u'还好', body_style())

7. 在设置字体颜色或者单元格背景颜色的时候,可以使用源码中0x0D参数来代表不同的颜色,也可以用0-127来表示不同的颜色,写了以下代码来测试了一下,方便之后使用

 # coding=utf-8
import xlwt workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet1') for i in range(0, 128):
stylei = xlwt.XFStyle()
patterni = xlwt.Pattern()
patterni.pattern = 1
# 设置底纹的图案索引,1为实心,2为50%灰色,对应为excel文件单元格格式中填充中的图案样式
patterni.pattern_fore_colour = i # 设置底纹的前景色,对应为excel文件单元格格式中填充中的背景色
patterni.pattern_back_colour = 35 # 设置底纹的背景色,对应为excel文件单元格格式中填充中的图案颜色
stylei.pattern = patterni # 为样式设置图案
worksheet.write(i, 0, i, stylei) workbook.save('file.xls')

8. 待续,后面根据一些使用的属性进行补充,此外,目前对于wookbook类的属性还没有搞明白怎么使用。