Python设置excel单元格格式

版权声明:版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/swinfans/article/details/85228263

xlwtpython中一个用来操作 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

    值及具体含义如下:

    • 0Flase:不设置下划线

    • 1True:表示设置单下划线

    • 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

    值与含义对应关系如下:

    • False0:不自动换行

    • True1:自动换行

  • shri 缩小字体填充

    类型:int

    默认值:False

    值与含义对应关系如下:

    • False0:不缩小字体填充

    • True1:缩小字体填充

  • 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 设置从单元格左下到右上的对角线

其中,leftrighttopbottomdiag 值的类型均为 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_colourright_colourtop_colourbottom_colourdiag_colour 的值的类型均为int,默认值均为 40。值与颜色的对应关系可以参考 Font 类的 colour_index 属性的值与颜色名字的映射表。

其中,need_diag1need_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的值设置为00x00False时,pattern_fore_colourpattern_back_colour的设置不会生效。

pattern_fore_colour 图案颜色

类型:int

默认值:64

值与颜色的对应关系可以参考 Font 类的 colour_index 属性的值与颜色名字的映射表。

pattern_back_colour 背景色

类型:int

默认值:65

值与颜色的对应关系可以参考 Font 类的 colour_index 属性的值与颜色名字的映射表。

设置保护

要设置保护单元格,需要用到Protection累的如下实例属性:

cell_locked

类型:boole

默认值:True

值与含义对应关系如下:

False0:不锁定单元格

True1:锁定单元格

formula_hidden

类型:boole

默认值:False

值与含义对应关系如下:

False0:不隐藏公式

True1:隐藏公式

猜你喜欢

转载自blog.csdn.net/swinfans/article/details/85228263