Excel修改默认分页符(仅仅在特定行后可插入分页符)
昨天帮朋友处理一个Excel打印时分页问题,因为他这个表格内容很多,一共有4万条数据,人工分页会比较困难。相信大家也经常会碰到这种需求:样例表格如下,在打印时候要保证标题行和内容行不断开。
经过对比,采用宏并不是很便利,最后决定用Python脚本来处理,具体代码如下:
# 导入所需模块,主要是openpyxl,该模块仅支持xlsx格式需注意
import openpyxl
from openpyxl.worksheet.pagebreak import Break
# 加载需要处理的文档,大家可根据自己情况替换掉下面地址addr
addr='C:\\Users\\Desktop\\XXx.xlsx'
wb = openpyxl.load_workbook(addr)
# 加载文档中需要处理的表格对象,这里以名字为“c”的表格为例
ws1 = wb.get_sheet_by_name("c")
# 定义两个列表,初始加入0,后面用来存储 累加的行高和分页行号
row_high= []
row_high.append(0)
breaky =[]
breaky.append(0)
# ws1.max_row为表格中最大行号,下面遍历所有行
for i in range(ws1.max_row):
# row_high存储累计行高row_high.append(row_high[-1]+ws1.row_dimensions[i+1].height)
# 判断第i行累计行高-上一次分页时累计行高
# 457.6是当前页面去除上下页边距后高度的磅值
# 我这里页面是A4横向(21x27),上下页边距均为2.5,剩下页面内容高度为16厘米,Excel中1厘米约为28.6磅,16x28.6=457.6if row_high[i+1]-row_high[breaky[-1]] >457.6 :# 再判断,将最接近的偶数行加入breaky列表if i%2==0:breaky.append(i)else :breaky.append(i-1)
# 从ws1.page+breaks中提取横向和纵向分页两个变量
next_page_horizon, next_page_vertical = ws1.page_breaks
# 遍历breaky列表,将分页行加入横向分页变量
for br in breaky:next_page_horizon.append(Break(br))
# 将更改保存到指定文件
wb.save('C:\\Users\\1Desktop\\C.xlsx')
print("转换完毕!!!")
通过以上脚本可实现在最接近每页的偶数行后插入分页符,openpyxl使用中存在一些问题,如果发现列表索引错误,可能是部分行高无法获取,格式刷将对应行刷一下就好。如果说单个表格数据量特别巨大,可能会出现保存后出现文件无法正常打开的情况,此时可以将表格分为两部分来分页。
Excel修改默认分页符(仅仅在特定行后可插入分页符)相关推荐
- excel修改默认字体
1.文件 -- 更多 -- 选项 2.常规 -- 新建工作簿时,设置自己喜欢的字体,然后点击确定 3.在如下文件件中:C:\Program Files\Microsoft Office\root\Of ...
- python修改xpath节点_Xpath python在特定文本后查找节点
这里是HTML代码: Specific text 1 link1 inside specific text 1 link2 inside specific text 1 link3 inside sp ...
- elementui分页组件按钮样式修改_Vue使用Elementui修改默认最快方法!
相信大家都需要过,在Vue中使用Elementui的时候,遇到最多也最蛋疼的问题就是修改默认样式,接下来直奔主题: // template :text-inside="true" ...
- 像 word 手动插入分页符一样实现报表中强制分页(强制分页)
### 概述 – 使用 Word 编辑文档,当文本或图形等内容填满一页时,Word 会插入一个自动分页符并开始新的一页.如果要在某个特定位置强制分页,可手动插入分页符(分隔符内),这样可以确保章节标题 ...
- 怎么在计算机上安装wps,电脑安装WPS Office中的excel作为默认打开程序几种方法
电脑上安装Office2010 和WPS软件,但是默认打开方式为wps,如何改成excel为默认打开方式?今天小编为大家介绍三种方法. 方法一:通过wps配置文件来设置 1.点击电脑左下角的windo ...
- [置顶] 给Fedora修改默认的软件下载源
(转载请注明:http://www.wypblog.com/archives/124,请不要用于商业目的.) Fedora安装完毕之后最头疼的问题就是软件更新,因为Fedora默认的更新源服务器是在国 ...
- linux centos7修改默认启动的内核(升级及切换内核)
修改默认启动的内核步骤 uname -r # 查看当前内核版本cat /boot/grub2/grub.cfg |grep "menuentry " # 查看所有可用内核grub2 ...
- Python中的openpyxl如何对excel修改文件
https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) Python安装o ...
- linux修改默认python版本_将Linux下python默认版本切换成替代版本
当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Python 版本,因此系统中会存在多个 Python 的可执行二进制文件.你可以按照以下方法使用 ls 命令来查看你的系 ...
- bootstraptable 怎么在特定行添加数据_手把手教你做一个“渣”数据师,用Python代替老情人Excel...
大数据文摘出品 来源:medium 编译:张大笔茹 十年前,你说你是做数据的,大家的反应就是 -- 用 Excel 做做表. 现在,要成为一个合格的数据分析师,你说你不会 Python,大概率会被江湖 ...
最新文章
- php 百度逆地理编码,百度逆地址解析
- swd脱机烧录器及上位机源码_通用上位机框架HwLib.Automation(C#)
- 一文搞懂MySQL-8.0 redo优化
- python多因子量化选股模型_量化新兵第十步:多因子选股模型
- Python在SQL Server管理中的重要性
- 019-Spring Boot 日志
- 【生活相关】三(米新江老师语录)
- 域猫(域名分享平台)
- 3DGIS地理信息系统设计方案
- select *和select 字段名
- MATLAB的.fig文件打不开——有效解决
- javax.validation.Validation使用方法
- 另辟蹊径,挑战网络战争
- 为什么世界上只有13个根域名服务器
- android+判断wifi+5g,Android判断wifi是5G还是2.4G
- activiti的initiator用法
- 车牌识别之二:字符分割
- 安装指定版本Kubernetes
- mysql导出备份、导入恢复以及迁移(适用虚拟主机)
- 计算机博士 英语词汇,2017考博英语词汇