Python用xlwt写Excel的笔记

Web应用经常需要对数据做Excel形式的导出,下面是在Python中使用xlwt写Excel的笔记。

  1. 新建一个表,向表里添加一个sheet。包括设置单元格样式,设置字体样式(字体,字号),设置行高,设置列宽
#!/usr/bin/env python
# -*- coding: windows-1251 -*-

import xlwt

workbook = xlwt.Workbook(encoding='utf-8')             
sheet = workbook.add_sheet('issue', cell_overwrite_ok=True)  
  1. 设置列宽和行高
sheet.col(0).width = 256 * 15  # 设置第一列的宽度为15,宽度的基本单位为256.所以设置的时候一般用256 × 需要的列宽。
# 设置行高为可以修改,并修改为 40,行高的基本单位为20,设置同行高。
sheet.row(0).height_mismatch = True
sheet.row(0).height = 20 * 40 
  1. 设置单元格风格。Font()用来设置单元格字体内容,如字体类型、大小等;borders()设置单元格边框线粗细;partern()设置单元格背景颜色;XFStyle()设置风格类型;alignment()用来设置了字体水平居中、垂直居中、自动换行。
style = xlwt.XFStyle()   
font = xlwt.Font()
font.name = "SimSun"  # 宋体
font.height = 20 * 11  # 字体大小为11,字体大小的基本单位是20.
font.bold = False # 设置字体为不加粗
font.colour_index = 0x01 # 字体颜色默认为黑色,此处设置字体颜色为白色, 颜色范围为:0x00-0xff
style.font = font
pat = xlwt.Pattern()
pat.pattern = xlwt.Pattern.SOLID_PATTERN  # 设置单元格背景颜色
pat.pattern_fore_colour = xlwt.Style.colour_map['dark_blue'] # 设置单元格背景颜色为深蓝
style.pattern = pat
borders = xlwt.Borders()
borders.left = 1
borders.right = 1
borders.top = 1
borders.bottom = 1
style.borders = borders

单元格背景颜色的映射表在xlwt/Style.py中,如下:

_colour_map_text = """\
aqua 0x31
black 0x08
blue 0x0C
blue_gray 0x36
bright_green 0x0B
brown 0x3C
coral 0x1D
cyan_ega 0x0F
dark_blue 0x12
dark_blue_ega 0x12
dark_green 0x3A
dark_green_ega 0x11
dark_purple 0x1C
dark_red 0x10
dark_red_ega 0x10
dark_teal 0x38
dark_yellow 0x13
gold 0x33
gray_ega 0x17
gray25 0x16
gray40 0x37
gray50 0x17
gray80 0x3F
green 0x11
ice_blue 0x1F
indigo 0x3E
ivory 0x1A
lavender 0x2E
light_blue 0x30
light_green 0x2A
light_orange 0x34
light_turquoise 0x29
light_yellow 0x2B
lime 0x32
magenta_ega 0x0E
ocean_blue 0x1E
olive_ega 0x13
olive_green 0x3B
orange 0x35
pale_blue 0x2C
periwinkle 0x18
pink 0x0E
plum 0x3D
purple_ega 0x14
red 0x0A
rose 0x2D
sea_green 0x39
silver_ega 0x16
sky_blue 0x28
tan 0x2F
teal 0x15
teal_ega 0x15
turquoise 0x0F
violet 0x14
white 0x09
yellow 0x0D"""

继续设置单元格中内容中位置,居中,局左右等

# May be: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, 
# HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED
style.alignment.horz = HORZ_CENTER   #水平居中 值为2
style.alignment.vert = VERT_CENTER    #垂直居中 值为1
style.alignment.wrap = 1 # 自动换行

对于会计数据,需要设置单元格的内容格式,比如人民币,美元之类的。

style.num_format_str = '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)' # 设置单元格内容格式为 人民币,保留到小数点后两位

完整的数字格式字符串列表 https://github.com/python-excel/xlwt/blob/master/examples/num_formats.py

4.向第一行的第二列写入内容 'content',并保存文件

sheet.write(0, 1, 'content', style)
workbook.save('test.xls')

你可能感兴趣的:(Python用xlwt写Excel的笔记)