一、基础类介绍
1、工作簿类workbook简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import xlwt class workbook(object0): ''' 工作簿类,使用xlwt创建excel文件时,首先要实例化此类的对象 ''' def __init__( self , encoding = 'ascii' , style_compression = 0 ): pass def add_sheet( self ,sheetname, cell_overwrite_ok = false): ''' 在工作簿中创建工作表 :param sheetname: 工作表的名字 :param cell_overwrite_ok: 如果值为true,则可以像单元格中多次写入数据(覆盖写),相当于修改单元格的数据,如果值为false则多次写入会引发异常。 :return: 返回一个工作表对象(也就是worksheet()对象) ''' pass def save( self ,filename_or_stream): ''' 将文件以excel的格式进行保存 :param filename_or_stream:excel的文件名 :return: ''' pass |
2、工作表类worksheet简介
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
class worksheet( object ): ''' 工作表类 ''' def __init__( self , sheetname, parent_book, cell_overwrite_ok = false): ''' 实例化对象的参数 :param sheetname: 工作表名 :param parent_book: 工作簿对象 :param cell_overwrite_ok:覆盖写单元格(如果为true可以覆盖写单元格,为false如果覆盖写会抛异常) ''' pass def write( self , r, c, label = "", style = xlwt.style.default_style): ''' 将数据写入工作表的单元格中 :param r: row的缩写,表示行,从0开始计数。 :param c: column的缩写,表示列,从0开始计数。 :param label:要写入的数据(支持的数据类型:int,long,float,字符串,日期,true,false,xlwt.formula等) :param style:表格样式(样式类:font, alignment, borders, pattern, protection。样式函数:easyxf, easyfont, add_palette_colour) :return: ''' pass |
3、创建一个不带样式的基础excel表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import xlwt # 实例化一个工作簿对象 workbook = xlwt.workbook(encoding = 'utf-8' ) # 获取工作表对象worksheet worksheet = workbook.add_sheet( 'work_sheet' ) # 向工作表中添加数据(参数对应 行, 列, 值) for i in range ( 3 ): for j in range ( 3 ): worksheet.write(i,j, label = 'test_' + str (j),) # 保存数据到硬盘 workbook.save(r 'i:\excel_test.xls' ) |
最终我们会看到如下图所示:
二、xlwt高级应用
font:用于设置字体,字体大小,字体颜色,是否加粗,斜体,字体带下划线,删除线等。
alignment:用于设置字体水平和垂直对齐、文本换行、缩进、方向/旋转、文本方向等。
border:表格边框设置。
background:单元格背景颜色。
1、字体类font简介
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
class font( object ): def __init__( self ): # twip = 1/20 of a point = 1/1440 of a inch # usually resolution == 96 pixels per 1 inch # (rarely 120 pixels per 1 inch or another one) self .height = 0x00c8 # 200: this is font with height 10 points 字体高度 self .italic = false # 斜体 self .struck_out = false # 删除线 self .outline = false # 字体轮廓(没发现有什么变化) self .shadow = false # 字体阴影 self .colour_index = 0x7fff # 这个字体颜色貌似有限制,没太搞懂,范围是0x00到0x35之间有颜色,超过这个范围都是黑色,最大不能超过0xffff否则会报错。 self .bold = false # 粗体 self ._weight = 0x0190 # 0x02bc gives bold font # 字体宽度 self .escapement = self .escapement_none #字体在单元格中位置,0x00正常,0x01字体上标,0x02字体下标。 self .underline = self .underline_none # 默认字体不带下划线,0x01单下划线,0x02和0x01差不多,0x21双下划线,0x02和0x21差不多 self .family = self .family_none # 不清楚做什么的,默认没有,0x01罗马家族,0x02瑞士家族,0x03现代家族,0x04脚本家族,0x05描述家族 self .charset = self .charset_sys_default # 字符集,字符集选项 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 self .name = 'arial' # 字体 |
1.1创建一个改变默认字体样式的excel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import xlwt # 实例化一个工作簿对象 workbook = xlwt.workbook(encoding = 'utf-8' ) # 获取工作表对象worksheet worksheet = workbook.add_sheet( 'work_sheet' ) # 实例化表格样式对象 xstyle = xlwt.xfstyle() # 设置字体样式 xfont = xlwt.font() xfont.colour_index = 0x04 # 设置字体颜色 xfont.bold = true # 字体加粗 xfont.height = 20 * 18 # 设置字体高度(20是基数不变,18是字号用于调整大小) xfont.underline = 0x01 # 设置字体带下划线 xfont.name = '华文彩云' # 设置字体 # 将字体对象赋值给样式对象 xstyle.font = xfont for i in range ( 3 ): for j in range ( 3 ): # 向工作表中添加数据(参数对应 行, 列, 值,样式) worksheet.write(i,j, label = 'test_' + str (j),style = xstyle) # 保存数据到硬盘 workbook.save(r 'i:\2.xls' ) |
如果一切顺利,打开2.xls会看到如下:
2、 alignment类简介
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
class alignment( object ): # 字体水平设置 horz_general = 0x00 # 正常显示 horz_left = 0x01 # 左对齐 horz_center = 0x02 # 居中 horz_right = 0x03 # 右对齐 horz_filled = 0x04 # 填充单元格 horz_justified = 0x05 # 显示在合理的位置 horz_center_across_sel = 0x06 # centred across selection我觉得这个应该是显示在单元格的正当中,但测试发现和0x02效果一样只能是水平居中不能垂直居中 horz_distributed = 0x07 # distributed汉字时字体是水平 平均分布在表格中,如果是英文字母则是水平居中显示。 # 垂直设置 vert_top = 0x00 # 字体在单元格顶部 vert_center = 0x01 # 字体垂直居中 vert_bottom = 0x02 # 字体在单元格底部 vert_justified = 0x03 # justified (biff5-biff8x)在合理的位置显示 vert_distributed = 0x04 # distributed (biff8x)有垂直居中的效果,如果字体超过单元格范围会垂直分布显示 # 字体方向(没用明白哈哈) direction_general = 0x00 # biff8x 正常显示 direction_lr = 0x01 direction_rl = 0x02 orientation_not_rotated = 0x00 orientation_stacked = 0x01 orientation_90_cc = 0x02 orientation_90_cw = 0x03 rotation_0_angle = 0x00 rotation_stacked = 0xff # 就这个是垂直显示 wrap_at_right = 0x01 # 自动换行 not_wrap_at_right = 0x00 # 默认不自动换行 shrink_to_fit = 0x01 # 将字体缩小到适合单元格大小 not_shrink_to_fit = 0x00 # 默认正常显示 def __init__( self ): self .horz = self .horz_general # 水平设置,默认是正常显示 self .vert = self .vert_bottom # 垂直设置,默认字体在单元格底部 self .dire = self .direction_general self .orie = self .orientation_not_rotated self .rota = self .rotation_0_angle self .wrap = self .not_wrap_at_right # 如果数据超过单元格显示范围是否自动换行显示,默认不换行 self .shri = self .not_shrink_to_fit # 如果数据超过单元格范围会自动缩小字体来适应当前单元格的显示范围,默认不缩小字体。 self .inde = 0 self .merg = 0 |
2.1下面是一个小示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import xlwt # 实例化一个工作簿对象 workbook = xlwt.workbook(encoding = 'utf-8' ) # 获取工作表对象worksheet worksheet = workbook.add_sheet( 'work_sheet' ) # 实例化表格样式对象 xstyle = xlwt.xfstyle() # 设置字体样式 xfont = xlwt.font() xfont.colour_index = 0x04 # 设置字体颜色 xfont.bold = true # 字体加粗 xfont.height = 20 * 18 # 设置字体高度(20是基数不变,18是字号用于调整大小) xfont.name = '宋体' # 设置字体 # 设置字体在单元格中的位置 xalig = xlwt.alignment() xalig.horz = 0x02 # 字体水平居中 xalig.vert = 0x01 # 字体水平居中 # 将字体对象赋值给样式对象 xstyle.font = xfont xstyle.alignment = xalig for i in range ( 3 ): for j in range ( 3 ): # 向工作表中添加数据(参数对应 行, 列, 值,样式) worksheet.write(i,j, label = 'test_' + str (j),style = xstyle) # 保存数据到硬盘 workbook.save(r 'i:\2.xls' ) |
如果一切顺利你会看到如下所示:
3、border类简介
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
class borders( object ): no_line = 0x00 # 无边框 thin = 0x01 # 细边框 medium = 0x02 # 中号细边框 dashed = 0x03 # 虚线边框 dotted = 0x04 # 点划线和虚线差不多 thick = 0x05 # 粗边框 double = 0x06 # 加粗边框 hair = 0x07 # 和虚线差不多 #the following for biff8 medium_dashed = 0x08 # 中号虚线 thin_dash_dotted = 0x09 # 细虚线 medium_dash_dotted = 0x0a # 中号带点的虚线 thin_dash_dot_dotted = 0x0b # 点划线 medium_dash_dot_dotted = 0x0c # 中号点划线 slanted_medium_dash_dotted = 0x0d # 斜线虚线点组成的 need_diag1 = 0x01 need_diag2 = 0x01 no_need_diag1 = 0x00 no_need_diag2 = 0x00 def __init__( self ): # 设置边框 self .left = self .no_line self .right = self .no_line self .top = self .no_line self .bottom = self .no_line self .diag = self .no_line # 不知道干嘛用的 # 设置边框颜色 self .left_colour = 0x40 self .right_colour = 0x40 self .top_colour = 0x40 self .bottom_colour = 0x40 self .diag_colour = 0x40 # 不知道干嘛用的 self .need_diag1 = self .no_need_diag1 self .need_diag2 = self .no_need_diag2 |
3.1下面是带边框的小示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
import xlwt # 实例化一个工作簿对象 workbook = xlwt.workbook(encoding = 'utf-8' ) # 获取工作表对象worksheet worksheet = workbook.add_sheet( 'work_sheet' ) # 实例化表格样式对象 xstyle = xlwt.xfstyle() # 设置字体样式 xfont = xlwt.font() xfont.colour_index = 0x04 # 设置字体颜色 xfont.bold = true # 字体加粗 xfont.height = 20 * 18 # 设置字体高度(20是基数不变,18是字号用于调整大小) xfont.name = '宋体' # 设置字体 # 设置字体在单元格中的位置 xalig = xlwt.alignment() xalig.horz = 0x02 # 字体水平居中 xalig.vert = 0x01 # 字体水平居中 # 设置边框 xborder = xlwt.borders() # 边框是斜,点虚线 xborder.left = 0x0d xborder.top = 0x0d xborder.right = 0x0d xborder.bottom = 0x0d # 边框颜色 xborder.bottom_colour = 0x35 xborder.top_colour = 0x8 xborder.left_colour = 0x012 xborder.right_colour = 0x4 # 设置样式 xstyle.font = xfont xstyle.alignment = xalig xstyle.borders = xborder for i in range ( 3 ): for j in range ( 3 ): # 向工作表中添加数据(参数对应 行, 列, 值,样式) worksheet.write(i,j, label = 'test_' + str (j),style = xstyle) # 保存数据到硬盘 workbook.save(r 'i:\2.xls' ) |
最终你会看到如下所示:
4、背景类background简介
1
2
3
4
5
6
7
8
9
|
class pattern( object ): # patterns 0x00 - 0x12 no_pattern = 0x00 solid_pattern = 0x01 def __init__( self ): self .pattern = self .no_pattern # 是否设置背景,必须允许设置背景,pattern_fore_colour和pattern_back_colour才会生效 self .pattern_fore_colour = 0x40 # 前景色不会影响单元格的边框 self .pattern_back_colour = 0x41 # 后景会影响单元格的边框 |
4.1下面进行小示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
import xlwt # 实例化一个工作簿对象 workbook = xlwt.workbook(encoding = 'utf-8' ) # 获取工作表对象worksheet worksheet = workbook.add_sheet( 'work_sheet' ) # 实例化表格样式对象 xstyle = xlwt.xfstyle() # 设置字体样式 xfont = xlwt.font() xfont.colour_index = 0x04 # 设置字体颜色 xfont.bold = true # 字体加粗 xfont.height = 20 * 18 # 设置字体高度(20是基数不变,18是字号用于调整大小) xfont.name = '宋体' # 设置字体 # 设置字体在单元格中的位置 xalig = xlwt.alignment() xalig.horz = 0x02 # 字体水平居中 xalig.vert = 0x01 # 字体水平居中 # 设置边框 xborder = xlwt.borders() # 边框是斜,点虚线 xborder.left = 0x0d xborder.top = 0x0d xborder.right = 0x0d xborder.bottom = 0x0d # 边框颜色 xborder.bottom_colour = 0x35 xborder.top_colour = 0x8 xborder.left_colour = 0x012 xborder.right_colour = 0x4 # 设置单元格背景 xpattern = xlwt.pattern() xpattern.pattern = 0x01 xpattern.pattern_fore_colour = 0x05 # 设置样式 xstyle.font = xfont xstyle.alignment = xalig xstyle.borders = xborder xstyle.pattern = xpattern for i in range ( 3 ): for j in range ( 3 ): # 向工作表中添加数据(参数对应 行, 列, 值,样式) worksheet.write(i,j, label = 'test_' + str (j),style = xstyle) # 保存数据到硬盘 workbook.save(r 'i:\2.xls' ) |
最终你会看到如下图所示:
上述只是简单的介绍了xlwt最基础的方法,还有许多方法功能没有被列举出来,这里就不一一列举了。有兴趣的小伙伴可以自己看源码来实现自己想要的功能。
三、一些常用的方法简介
1、设置单元格行高,列宽。
目前没有找到好的办法,只能逐行逐列的设置。代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
import xlwt # 实例化一个工作簿对象 workbook = xlwt.workbook(encoding = 'utf-8' ) # 获取工作表对象worksheet worksheet = workbook.add_sheet( 'work_sheet' ) # 实例化表格样式对象 xstyle = xlwt.xfstyle() # 设置字体样式 xfont = xlwt.font() xfont.colour_index = 0x04 # 设置字体颜色 xfont.bold = true # 字体加粗 xfont.height = 20 * 18 # 设置字体高度(20是基数不变,18是字号用于调整大小) xfont.name = '宋体' # 设置字体 # 设置字体在单元格中的位置 xalig = xlwt.alignment() xalig.horz = 0x02 # 字体水平居中 xalig.vert = 0x01 # 字体水平居中 # 设置边框 xborder = xlwt.borders() # 边框是斜,点虚线 xborder.left = 0x0d xborder.top = 0x0d xborder.right = 0x0d xborder.bottom = 0x0d # 边框颜色 xborder.bottom_colour = 0x35 xborder.top_colour = 0x8 xborder.left_colour = 0x012 xborder.right_colour = 0x4 # 设置单元格背景 xpattern = xlwt.pattern() xpattern.pattern = 0x01 xpattern.pattern_fore_colour = 0x05 # 设置样式 xstyle.font = xfont xstyle.alignment = xalig xstyle.borders = xborder xstyle.pattern = xpattern for i in range ( 3 ): # 设置行高 worksheet.row(i).height_mismatch = true worksheet.row(i).height = 20 * 30 # 20是基数*30是行的高度 for j in range ( 3 ): # 向工作表中添加数据(参数对应 行, 列, 值,样式) data = 'test_' + str (j) worksheet.col(j).width = 256 * len (data) * 2 # 设置列宽,计算列宽度:256是单元格基数*用数据长度*2最终的结果单元格的宽度和数据正好填满。 worksheet.write(i,j, label = data,style = xstyle) # 保存数据到硬盘 workbook.save(r 'i:\2.xls' ) |
最终会看到如下效果
2、在单元格中显示日期,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
import xlwt import datetime # 实例化一个工作簿对象 workbook = xlwt.workbook(encoding = 'utf-8' ) # 获取工作表对象worksheet worksheet = workbook.add_sheet( 'work_sheet' ) # 实例化表格样式对象 xstyle = xlwt.xfstyle() # 设置字体样式 xfont = xlwt.font() xfont.colour_index = 0x04 # 设置字体颜色 xfont.bold = true # 字体加粗 xfont.height = 20 * 18 # 设置字体高度(20是基数不变,18是字号用于调整大小) xfont.name = '宋体' # 设置字体 # 设置字体在单元格中的位置 xalig = xlwt.alignment() xalig.horz = 0x02 # 字体水平居中 xalig.vert = 0x01 # 字体水平居中 # 设置边框 xborder = xlwt.borders() # 边框是斜,点虚线 xborder.left = 0x0d xborder.top = 0x0d xborder.right = 0x0d xborder.bottom = 0x0d # 边框颜色 xborder.bottom_colour = 0x35 xborder.top_colour = 0x8 xborder.left_colour = 0x012 xborder.right_colour = 0x4 # 设置单元格背景 xpattern = xlwt.pattern() xpattern.pattern = 0x01 xpattern.pattern_fore_colour = 0x05 # 设置样式 xstyle.font = xfont xstyle.alignment = xalig xstyle.borders = xborder xstyle.pattern = xpattern xstyle.num_format_str = 'm/d/yy' # 日期显示格式,还有很多其它数据类型的选项,请参考下文。 for i in range ( 3 ): # 设置行高 worksheet.row(i).height_mismatch = true worksheet.row(i).height = 20 * 30 # 20是基数*30是行的高度 for j in range ( 3 ): # 向工作表中添加数据(参数对应 行, 列, 值,样式) data = datetime.datetime.now() # 获取当前日期 worksheet.col(j).width = 256 * len (data.strftime( '%y-%m-%d' )) * 2 # 计算列宽度:256是单元格基数*用数据长度*2最终的结果单元格的宽度和数据正好填满。 worksheet.write(i,j, label = data,style = xstyle) # 保存数据到硬盘 workbook.save(r 'i:\2.xls' ) |
如果一切顺利效果如下:
对于财务或者其他日期时间,小数,科学计数等显示格式,参考如下选项:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
_std_num_fmt_list = [ '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' , '@' ] xstyle.num_format_str = 'm/d/yy' # 我们只需将这个字符串替换上面我们需要的即可。 |
3、在excel表格中插入公式,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
import xlwt # 实例化一个工作簿对象 workbook = xlwt.workbook(encoding = 'utf-8' ) # 获取工作表对象worksheet worksheet = workbook.add_sheet( 'work_sheet' ) # 实例化表格样式对象 xstyle = xlwt.xfstyle() # 设置字体样式 xfont = xlwt.font() xfont.colour_index = 0x04 # 设置字体颜色 xfont.bold = true # 字体加粗 xfont.height = 20 * 18 # 设置字体高度(20是基数不变,18是字号用于调整大小) xfont.name = '宋体' # 设置字体 # 设置字体在单元格中的位置 xalig = xlwt.alignment() xalig.horz = 0x02 # 字体水平居中 xalig.vert = 0x01 # 字体水平居中 # 设置边框 xborder = xlwt.borders() # 边框是斜,点虚线 xborder.left = 0x0d xborder.top = 0x0d xborder.right = 0x0d xborder.bottom = 0x0d # 边框颜色 xborder.bottom_colour = 0x35 xborder.top_colour = 0x8 xborder.left_colour = 0x012 xborder.right_colour = 0x4 # 设置单元格背景 xpattern = xlwt.pattern() xpattern.pattern = 0x01 xpattern.pattern_fore_colour = 0x05 # 设置样式 xstyle.font = xfont xstyle.alignment = xalig xstyle.borders = xborder xstyle.pattern = xpattern for i in range ( 3 ): # 设置行高 worksheet.row(i).height_mismatch = true worksheet.row(i).height = 20 * 30 # 20是基数*30是行的高度 for j in range ( 3 ): # 向工作表中添加数据(参数对应 行, 列, 值,样式) worksheet.write(i,j, label = int (j) + 1 ,style = xstyle) # 设置行高 worksheet.row( 3 ).height_mismatch = true worksheet.row( 3 ).height = 20 * 30 # 20是基数*30是行的高度 worksheet.write( 3 , 0 , label = xlwt.formula( 'sum(a1:a3)' ),style = xstyle) # 求和函数 worksheet.write( 3 , 1 , label = xlwt.formula( 'b1*b2*b3' ),style = xstyle) # 求乘积 worksheet.write( 3 , 2 , label = xlwt.formula( 'average(c1:c3)' ),style = xstyle) # 求平均数 # 保存数据到硬盘 workbook.save(r 'i:\2.xls' ) |
最终我们会看到如下效果:
4、在表格中插入超链接,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
import xlwt # 实例化一个工作簿对象 workbook = xlwt.workbook(encoding = 'utf-8' ) # 获取工作表对象worksheet worksheet = workbook.add_sheet( 'work_sheet' ) # 实例化表格样式对象 xstyle = xlwt.xfstyle() # 设置字体样式 xfont = xlwt.font() xfont.colour_index = 0x04 # 设置字体颜色 xfont.bold = true # 字体加粗 xfont.height = 20 * 18 # 设置字体高度(20是基数不变,18是字号用于调整大小) xfont.name = '宋体' # 设置字体 # 设置字体在单元格中的位置 xalig = xlwt.alignment() xalig.horz = 0x02 # 字体水平居中 xalig.vert = 0x01 # 字体水平居中 # 设置边框 xborder = xlwt.borders() # 边框是斜,点虚线 xborder.left = 0x0d xborder.top = 0x0d xborder.right = 0x0d xborder.bottom = 0x0d # 边框颜色 xborder.bottom_colour = 0x35 xborder.top_colour = 0x8 xborder.left_colour = 0x012 xborder.right_colour = 0x4 # 设置单元格背景 xpattern = xlwt.pattern() xpattern.pattern = 0x01 xpattern.pattern_fore_colour = 0x05 # 设置样式 xstyle.font = xfont xstyle.alignment = xalig xstyle.borders = xborder xstyle.pattern = xpattern # 设置行高 worksheet.row( 0 ).height_mismatch = true worksheet.row( 0 ).height = 20 * 30 # 20是基数*30是行的高度 a_data = 'hyperlink("http://www.baidu.com";"baidu")' # 要插入的网址,'baidu'是在excel中显示的值。 worksheet.col( 0 ).width = 256 * len (a_data) * 2 # 设置单元格宽度 worksheet.write( 0 , 0 , label = xlwt.formula(a_data),style = xstyle) # 插入超链接 # 保存数据到硬盘 workbook.save(r 'i:\2.xls' ) |
如果一切顺利你会看到如下:
5、关于颜色映射表如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
_colour_map_text = """\ 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""" |
好啦!!!就先简单写到这里吧。以后发现什么好玩的功能,在继续补充。
以上就是python xlwt模块的使用解析的详细内容,更多关于python xlwt模块的使用的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/caesar-id/p/11802440.html