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_LATIN0x00 -
CHARSET_SYS_DEFAULT0x01 -
CHARSET_SYMBOL0x02 -
CHARSET_APPLE_ROMAN0x4D -
CHARSET_ANSI_JAP_SHIFT_JIS0x80 -
CHARSET_ANSI_KOR_HANGUL0x81 -
CHARSET_ANSI_KOR_JOHAB0x82 -
CHARSET_ANSI_CHINESE_GBK0x86 -
CHARSET_ANSI_CHINESE_BIG50x88 -
CHARSET_ANSI_GREEK0xA1 -
CHARSET_ANSI_TURKISH0xA2 -
CHARSET_ANSI_VIETNAMESE0xA3 -
CHARSET_ANSI_HEBREW0xB1 -
CHARSET_ANSI_ARABIC0xB2 -
CHARSET_ANSI_BALTIC0xBA -
CHARSET_ANSI_CYRILLIC0xCC -
CHARSET_ANSI_THAI0xDE -
CHARSET_ANSI_LATIN_II0xEE -
CHARSET_OEM_LATIN_I0xFF
-
-
_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中的字号10height值和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:隐藏公式
本文详细介绍xlwt模块,一个用于Python操作Excel的库。讲解如何使用该库设置单元格样式,包括数字格式、字体、对齐方式、边框、填充和保护等属性。

1194

被折叠的 条评论
为什么被折叠?



