python 3.6.5 xlwt 1.3.0
一、官方简单实例
import xlwt
from datetime import datetime
style0 = xlwt.easyxf('font: name Times New Roman, color-index red, bold on',num_format_str='#,##0.00')
style1 = xlwt.easyxf(num_format_str='D-MMM-YY')
wb = xlwt.Workbook()
ws = wb.add_sheet('A Test Sheet')
ws.write(0, 0, 1234.56, style0)
ws.write(1, 0, datetime.now(), style1)
ws.write(2, 0, 1)
ws.write(2, 1, 1)
ws.write(2, 2, xlwt.Formula("A3+B3"))
wb.save('example.xls')
二、样式设置
def def_style():
style = xlwt.XFStyle()
##########这部分设置字体#########
font = xlwt.Font()
font.name = 'Times New Roman' #或者换成外面传进来的参数,这样可以使一个函数定义所有style
font.bold = 'True'
font.height = '...'
font.size = '...'
font.colour_index('...')
style.font = font
########这部分设置居中格式#######
alignment = xlwt.Alignment()
alignment.horz = xlwt.Alignment.HORZ_CENTER #水平居中
alignment.vert = xlwt.Alignment.VERT_CENTER #垂直居中
style.alignment = alignment
#########还可以添加几个设置颜色,边框的部分##########
return style
#######################################
#核心意思是指,要通过这个函数来设置一些style的属性
#比如字体,居中格式等等
#最终再返回一个style
#######################################
#这样在写入的时候就可以通过def_style()来返回一个style对象,来设置style了
xlwt.write(0,0,'test',def_style())
*单元格大小并不会根据内容的大小和多少自动调整,要通过
sheet.row(x).height = ...
sheet.col(x).width = ...
来调整单元格大小
*若要设置cell的背景色,边框等可以设置style的其他属性,比如
背景色要设置 style.pattern,如:
ptn = xlwt.Pattern()
ptn.pattern = xlwt.Pattern.SOLID_PATTERN
ptn.pattern_fore_colour = 颜色代码 //注意这个颜色代码不是RGB的六位颜色代码,而是xlwt内部的一套代码。具体可以参考xlwt.Styles中一些类似叫做color_map的数据,下表作参考:
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
* xlwt中列宽的值表示方法:默认字体0的1/256为衡量单位。 xlwt创建时使用的默认宽度为2960,既11个字符0的宽度 所以我们在设置列宽时可以用如下方法: width = 256 * 20 256为衡量单位,20表示20个字符宽度 那接下来完成我们的程序
#coding:utf-8
'''
Created on 2015-11-19
@author: Administrator
'''
import xlwt
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('sheet1')
first_col=sheet.col(0) #xlwt中是行和列都是从0开始计算的
sec_col=sheet.col(1)
first_col.width=256*20
book.save('width.xls')