xlwt 模块简介
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
:隐藏公式