上一篇博客对Python 的第三方模块 xlwt 对Excel表格的一些基础操作如:新建工作簿、增加sheet表、插入位图等 进行了讲解。
本篇博客介绍 xlwt 模块设置 Excel表格文件的窗口显示样式、默认打印格式,主要内容包括:
1. 设置冻结窗口;
2. 表格的常用显示设置;
3. 设置文档保护及密码;
4. 表格打印设置详解。
Excel表格对于数据的显示非常直观,其冻结窗口的设置就是对用户阅读数据非常友好的一个功能。
我们先写如下一个代码,创建一个Excel表格,并写入数据:
# 导入模块
import xlwt
work_book = xlwt.Workbook()
work_sheet = work_book.add_sheet('Test')
w2 = work_book.add_sheet('T2')
z = [[r,c] for r in range(20) for c in range(20)]
[l.append(str(i)) for i,l in enumerate(z)]
for info in z:
work_sheet.write(info[0],info[1],info[2])
w2.write(info[0],info[1],info[2])
# 保存文件
work_book.save('Test2.xls')
我们在当前工作路径下创建了一个 Test2.xls 表格文件,文件中有Test,T2两个sheet表,表中数据一样。
文件截图:
后续我们对 Test2.xls 文件的 Test sheet 对象进行操作,大家可和 T2 sheet 对象进行对比,看看一些设置的效果。
设置冻结窗口:
# 设置冻结窗口
# 设置冻结为真
work_sheet.set_panes_frozen('1')
# 水平冻结
work_sheet.set_horz_split_pos(2)
# 垂直冻结
work_sheet.set_vert_split_pos(1)
解析:
设置冻结窗口需先将sheet表的冻结属性设置为真,然后再对水平、垂直需冻结行数、列数进行设置。
上面的代码将表格文件的Test sheet 的前两行、第一列设置冻结窗口,效果如下:
1、设置隐藏行、列标签(默认为显示):
work_sheet.set_show_headers(0)
2、设置隐藏网格线(默认为显示):
work_sheet.set_show_grid(0)
3、设置表格右排列(默认为左排列):
work_sheet.set_cols_right_to_left(1)
设置后的表格截图:
可以看到:sheet表没有了ABCD…行标签、1 2 3 4…列标签,网格线也被隐藏。数据开始方向变为,从右到左。
设置文档保护及密码,不允许修改(默认不保护):
work_sheet.set_protect(1)
work_sheet.set_password('123456')
效果图:
xlwt 模块提供了设置 sheet 表默认打印样式的方法,而这一部分资料在网上基本上找不到…。
设置打印行、列标签(默认不打印):
work_sheet.set_print_headers(1)
设置打印网格线(默认不打印):
work_sheet.set_print_grid(1)
设置表格数据打印垂直居中(默认不居中):
work_sheet.set_print_centered_vert(1)
设置表格数据打印水平不居中(默认居中):
work_sheet.set_print_centered_horz(0)
上述四种设置后,表格打印预览:
日常工作中在Excel表格打印时,一般不会去设置表格文件的页眉页脚,但是 xlwt 模块还是提供了设置页眉页脚的方法:
设置页眉(默认为页码数):
work_sheet.set_header_str('TestPageNO. &P'.encode())
设置页脚(默认为文件名称):
work_sheet.set_footer_str('FileName:&F'.encode())
页眉打印预览:
注:这里的眉设置的 ‘TestPageNO. &P’.encode() 中 &P 代表页码数,页脚中的 &F 表示,不包含文件路径的文件名称。
其他的代码还有:
Command Contents
&& The "&" character itself
&L Start of the left section
&C Start of the centred section
&R Start of the right section
&P Current page number
&N Page count
&D Current date
&T Current time
&A Sheet name (BIFF5-BIFF8)
&F File name without path
&Z File path without file name (BIFF8X)
&G Picture (BIFF8X)
&B Bold on/off (BIFF2-BIFF4)
&I Italic on/off (BIFF2-BIFF4)
&U Underlining on/off
&E Double underlining on/off (BIFF5-BIFF8)
&S Strikeout on/off
&X Superscript on/off (BIFF5-BIFF8)
&Y Subscript on/off (BIFF5-BIFF8)
比如我们想要设置:页眉为空,页脚为sheet名称 + 当前日期+ 页码。
# 设置页眉为空
work_sheet.set_header_str(''.encode())
# 设置页脚
work_sheet.set_footer_str('NAME:&A DATE:&D No.: &P'.encode())
设置左边距(默认0.3)、右边距(默认0.3):
work_sheet.set_left_margin(0.5)
work_sheet.set_right_margin(0.5)
设置上边距(默认:0.61)、下边距(默认:0.37):
work_sheet.set_top_margin(0.5)
work_sheet.set_bottom_margin(0.5)
设置页眉边距(默认:0.1)、页脚边距(默认:0.1):
work_sheet.set_header_margin(0.5)
work_sheet.set_footer_margin(0.5)
将打印纸张设置为A3(默认A4,9):
work_sheet.set_paper_size_code(8)
常用纸张编码代号:
8 A3 297mm x 420mm
9 A4 210mm x 297mm
10 A4 small 210mm x 297mm
11 A5 148mm x 210mm
12 B4 (JIS) 257mm x 364mm
13 B5 (JIS) 182mm x 257mm
33 B4 (ISO) 250mm x 353mm
34 B5 (ISO) 176mm x 250mm
35 B6 (ISO) 125mm x 176mm
66 A2 420mm x 594mm
70 A6 105mm x 148mm
设置横向打印(默认纵向打印):
work_sheet.set_portrait(0)
设置页面缩放比例为90% (默认100%):
work_sheet.set_print_scaling(90)
设置是否单色打印(默认单色):
work_sheet.set_print_colour(0)
以上设置,打印预览:
设置垂直打印区域:
work_sheet.set_vert_page_breaks([[5,0,0],[11,0,0]])
注:第一页为5列,第二列为6列。
设置水平打印区域:
work_sheet.set_horz_page_breaks([[6,0,0],[12,0,0]])
注:第一页为6行,第2页为6行。
上述设置,分页预览图:
以草稿质量打印(默认非草稿):
work_sheet.set_print_draft(1)
草稿打印,打印出来的效果会很模糊,不常用。
设置打印批注、批注在文档结尾显示(默认不打印批准):
work_sheet.set_print_notes(1)
work_sheet.set_print_notes_at_end(1)
设置打印单元格错误显示值为:#N/A(默认打印显示值):
work_sheet.set_print_omit_errors(3)
0 设置打印显示值;
1 设置为空白;
2 设置为–;
3 设置为:#N/A。
设置打印质量为600 dpi (默认300dpi):
work_sheet.set_print_hres(600)
work_sheet.set_print_vres(600)
以上就是本篇博客全部内容,感谢阅读。
下一篇博客内容为:介绍 xlwt 模块设置 Excel表格文件 单元格格式、字体格式、对齐方式、边框及填充等 方法。
【Python与Excel表格】专栏
着重介绍 Python xlwt、xlrd 等模块操作 Excel 表格文件的方法,也会搭配一些实例演练,强化所讲知识点的理解与运用。
感兴趣的朋友,可以点个关注或收藏。 创作不易,你的支持是我最大的动力,感谢 !