xlwt
是 python
中一个用来操作 excel
文件的库,其中,封装了很多常用操作。本文主要讲解使用该库在生成excel时,设置单元格样式的方法。
xlwt
中设置单元格样式主要是通过 XFStyle
这个类来完成的,XFStyle
类中属性与单元格属性的对应关系如下:
XFStyle属性名 | 对应单元格属性 | 值类型 |
---|---|---|
num_format_str | 数字 | str |
font | 字体 | Font类实例 |
alignment | 对齐 | Alignment类实例 |
borders | 边框 | Borders类实例 |
pattern | 填充 | Pattern类实例 |
protection | 保护 | Protection类实例 |
要设置单元格的哪种属性,只要设置 XFStyle
实例的对应属性即可。下面依次介绍各个属性的设置。
要设置数字的格式,只需设置num_format_str
的值即可。
可设置的值如下:
'general'
'0'
'0.00'
'#,##0'
'#,##0.00'
'"$"#,##0_);("$"#,##0)'
'"$"#,##0_);[Red]("$"#,##0)'
'"$"#,##0.00_);("$"#,##0.00)'
'"$"#,##0.00_);[Red]("$"#,##0.00)'
'0%'
'0.00%'
'0.00E+00'
'# ?/?'
'# ??/??'
'M/D/YY'
'D-MMM-YY'
'D-MMM'
'MMM-YY'
'h:mm AM/PM'
'h:mm:ss AM/PM'
'h:mm'
'h:mm:ss'
'M/D/YY h:mm'
'_(#,##0_);(#,##0)'
'_(#,##0_);[Red](#,##0)'
'_(#,##0.00_);(#,##0.00)'
'_(#,##0.00_);[Red](#,##0.00)'
'_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)'
'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)'
'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)'
'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)'
'mm:ss'
'[h]:mm:ss'
'mm:ss.0'
'##0.0E+0'
'@'
上面的这些值,是excel中数字可以设置的自定义格式,具体的含义可以参照excel中自定义格式的用法。
要设置单元格中字体格式,要用到Font
类的如下实例属性:
name 字体名称
类型:str
默认值:Arial
italic 是否斜体
类型:boole
默认值:False
bold 粗体
类型:boole
默认值:False
underline 下划线
类型:int
可以使用十进制或16进制数
默认值:False
值及具体含义如下:
0
或Flase
:不设置下划线
1
或True
:表示设置单下划线
2
:设置双下划线
33
:表示设置会计用单下划线
34
:表示设置会计用双下划线
charset 字符集
类型:int
默认值:0x01
表示系统默认字符集
字符集与int
值对应关系如下:
CHARSET_ANSI_LATIN
0x00
CHARSET_SYS_DEFAULT
0x01
CHARSET_SYMBOL
0x02
CHARSET_APPLE_ROMAN
0x4D
CHARSET_ANSI_JAP_SHIFT_JIS
0x80
CHARSET_ANSI_KOR_HANGUL
0x81
CHARSET_ANSI_KOR_JOHAB
0x82
CHARSET_ANSI_CHINESE_GBK
0x86
CHARSET_ANSI_CHINESE_BIG5
0x88
CHARSET_ANSI_GREEK
0xA1
CHARSET_ANSI_TURKISH
0xA2
CHARSET_ANSI_VIETNAMESE
0xA3
CHARSET_ANSI_HEBREW
0xB1
CHARSET_ANSI_ARABIC
0xB2
CHARSET_ANSI_BALTIC
0xBA
CHARSET_ANSI_CYRILLIC
0xCC
CHARSET_ANSI_THAI
0xDE
CHARSET_ANSI_LATIN_II
0xEE
CHARSET_OEM_LATIN_I
0xFF
_weight 字体磅数
类型:int
默认值:400
,表示的字体磅数为 20
_height
和excel中磅数的换算关系为 _wegiht/20
即为excel中的字体磅数
colour_index 字体颜色
类型:int
默认值:0x7FFF
值与颜色名称的映射表如下(该映射关系与W3C的RGB颜色映射表没有关联):
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
height 字号
类型:int
默认值:200
表示excel中的字号 10
height
值和excel中字号的换算关系为 height/20
即为excel中的字号值
struck_out 删除线
类型:boole
默认值:False
shadow 阴影
类型:boole
默认值:False
family 字体族名称
类型:int
默认值:0
值与其含义对应关系:
不设置:0
ROMAN字符族:1
SWISS字符族:2
MODERN字符族:3
SCRIPT字符族:4
DECORATIVE字符族:5
escapement
类型:int
默认值:0x00
值与含义对应关系:
0x00
:不设置
0x01
:上标
0x02
:下标
outline
类型:int
默认值:False
要设置单元格的对齐方式,需要用到 Alignment
类的如下实例属性:
horz 水平对齐方式
类型:int
默认值:0
值与含义对应关系如下:
0
:常规
1
:靠左(缩进)
2
:居中
3
:靠右(缩进)
4
:填充
5
:两端对齐
6
:跨列居中
7
:分散对齐(缩进)
vert 垂直对齐方式
类型:int
默认值:2
值与含义对应关系如下:
0
:靠上
1
:居中
2
:靠下
3
:两端对齐
4
:分散对齐
rota 方向
类型:int
默认值:0
值与含义对应关系如下:
0
:0度,表示文字方向为水平
45
:45度,表示逆时针旋转45度
90
:90度,表示逆时针旋转90度
135
:-45度,表示顺时针旋转45度
180
:-90度,表示顺时针旋转90度
255
:表示文字方向为垂直
wrap 自动换行
类型:int
默认值:False
值与含义对应关系如下:
False
或0
:不自动换行
True
或1
:自动换行
shri 缩小字体填充
类型:int
默认值:False
值与含义对应关系如下:
False
或0
:不缩小字体填充
True
或1
:缩小字体填充
inde 缩进
类型:int
默认值:0
值与含义对应关系如下:
n
:缩进n个字符merg 合并单元格
类型:int
默认值:0
要设置单元格的边框,需要用到 Borders
类的如下实例属性:
left
单元格左边框的线型
right
单元格右边框的线型
top
单元格上边框的线型
bottom
单元格下边框的线型
diag
单元格中对角线的线型
left_colour
单元格左边框的颜色
right_colour
单元格右边框的颜色
top_colour
单元格上边框的颜色
bottom_colour
单元格下边框的颜色
diag_colour
单元格中对角线的颜色
need_diag1
设置从单元格左上到右下的对角线
need_diag2
设置从单元格左下到右上的对角线
其中,left
,right
,top
,bottom
,diag
值的类型均为 int
,默认值均为 0
,取值范围为[0, 13](从0到13之间的任意数)。这14个值分别代表excel中边框的14种线型,数值与线型的对应关系如下:
'no_line': 0
'thin': 1
'medium': 2
'dashed': 3
'dotted': 4
'thick': 5
'double': 6
'hair': 7
'medium_dashed': 8
'thin_dash_dotted': 9
'medium_dash_dotted': 10
'thin_dash_dot_dotted': 11
'medium_dash_dot_dotted': 12
'slanted_medium_dash_dotted': 13
其中, left_colour
,right_colour
,top_colour
,bottom_colour
,diag_colour
的值的类型均为int
,默认值均为 40
。值与颜色的对应关系可以参考 Font
类的 colour_index
属性的值与颜色名字的映射表。
其中,need_diag1
和need_diag2
的值的类型均为int
,默认值均为0
,表示不设置对角线,若要设置对角线,则可将其值设置为1
。
填充
要进行单元格的填充设置,需要用到Pattern
的如下实例属性:
pattern 图案样式
类型:int
默认值:0
值与填充图案名称对应关系如下:
'no_fill': 0
'none': 0
'solid': 1
'solid_fill': 1
'solid_pattern': 1
'fine_dots': 2
'alt_bars': 3
'sparse_dots': 4
'thick_horz_bands': 5
'thick_vert_bands': 6
'thick_backward_diag': 7
'thick_forward_diag': 8
'big_spots': 9
'bricks': 10
'thin_horz_bands': 11
'thin_vert_bands': 12
'thin_backward_diag': 13
'thin_forward_diag': 14
'squares': 15
'diamonds': 16
若
pattern
的值设置为0
、0x00
或False
时,pattern_fore_colour
和pattern_back_colour
的设置不会生效。
pattern_fore_colour 图案颜色
类型:int
默认值:64
值与颜色的对应关系可以参考 Font
类的 colour_index
属性的值与颜色名字的映射表。
pattern_back_colour 背景色
类型:int
默认值:65
值与颜色的对应关系可以参考 Font
类的 colour_index
属性的值与颜色名字的映射表。
要设置保护单元格,需要用到Protection
类的如下实例属性:
cell_locked
类型:boole
默认值:True
值与含义对应关系如下:
False
或0
:不锁定单元格
True
,1
:锁定单元格
formula_hidden
类型:boole
默认值:False
值与含义对应关系如下:
False
或0
:不隐藏公式
True
,1
:隐藏公式