【Python与Office办公软件】xlwt与Excel表格基础(二):冻结窗口、设置加密保护、打印设置等

前言:

上一篇博客对Python 的第三方模块 xlwt 对Excel表格的一些基础操作如:新建工作簿、增加sheet表、插入位图等 进行了讲解。这篇博客主要对 xlrd 模块操作Excel表格中sheet表的方法进行讲解,主要内容包括:

1. 设置冻结窗口;
2. 表格的常用显示设置;
3. 设置文档保护及密码;
4. 表格打印设置详解。

1、设置冻结窗口

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表,表中数据一样。

文件截图:

在这里插入图片描述

后续我们对 Test sheet对象进行操作,大家可和T2表进行对比,看看一些设置的效果。

设置冻结窗口:

# 设置冻结窗口
# 设置冻结为真
work_sheet.set_panes_frozen('1')
# 水平冻结
work_sheet.set_horz_split_pos(2)
# 垂直冻结
work_sheet.set_vert_split_pos(1)

解析:
设置冻结窗口需先将sheet表的冻结属性设置为真,然后再对水平、垂直需冻结行数、列数进行设置。

上面的代码将表格的前两行、第一列设置冻结窗口,效果如下:
在这里插入图片描述

2、sheet表常用显示设置

1、设置隐藏行、列标签(默认为显示):

work_sheet.set_show_headers(0)

2、设置隐藏网格线(默认为显示):

work_sheet.set_show_grid(0)

3、设置表格右排列(默认为左排列):

work_sheet.set_cols_right_to_left(1)

设置后的表格截图:

在这里插入图片描述

3、设置表格保护及密码:

设置文档保护及密码,不允许修改(默认不保护):

work_sheet.set_protect(1)
work_sheet.set_password('123456')

效果图:

在这里插入图片描述

4、设置默认打印格式

xlrd 模块提供了对sheet表默认打印格式修改的方法,而这一部分资料在网上基本上找不到…。

4.1、基础设置:

设置打印行、列标签(默认不打印):

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)

上述四种设置后,表格打印预览:
在这里插入图片描述

4.2、页眉页脚设置:

Excel表格打印的时候,我们比较少会去选择设置页眉页脚,但是 xlrd 还是给我们提供了方法来设置页眉页脚:

设置页眉(默认为页码数):

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())

打印预览:
在这里插入图片描述

4.3、设置页边距:

设置左边距(默认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)
4.4、设置默认纸张、打印方向等:

将打印纸张设置为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)

以上设置,打印预览:
在这里插入图片描述

4.5 设置打印区域:

设置垂直打印区域:

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行。

上述设置,分页预览图:

在这里插入图片描述

4.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)

最后:

以上就是本篇全部内容,感谢阅读。

【Python与Office办公软件】系列文章会对Python常用Office办公软件处理模块的使用进行讲解,感兴趣的朋友,可以点个关注、收藏。

猜你喜欢

转载自blog.csdn.net/zhouz92/article/details/106811760