python xlwt使用干货整理

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')

猜你喜欢

转载自blog.csdn.net/weixin_39664337/article/details/83745425