当前位置: 首页 > article >正文

Excel批量设置行高,Excel表格设置自动换行后打印显示不全,Excel表格设置最合适的行高后打印显示不全,完美解决方案!!!

文章目录

  • 说个问题(很严重!!!)
  • 写个方案
  • 会Python看这里
    • Python环境搭建
    • 不存在多行合并
    • 存在多行合并
  • 不会Python看这里

说个问题(很严重!!!)

平时处理Excel表格的时候,特别是针对存在【自动换行】的表格需要打印的时候,每次都要一行一行的调整行高,一般需要打印的时候都是要上会、要汇报的时候,都是比较着急的时候,但是着急没啥有,没啥好办法,只能一行一行的调,太痛苦啦!!!🤮🤢🤕🤒🤧😵

写个方案

但是只要你肯动脑筋,万事都有解决方案滴!请接着往下看。
openpyxl 官方网站:https://openpyxl.readthedocs.io/en/stable/
基于Python3.8.8 和 WPS软件实现

wps版本信息

会Python看这里

Python环境搭建

  1. 首先确保你电脑上安装了Python环境,可以参考文章:
    Python脚本运行环境搭建、安装教程、超简单、零基础小白
  2. 新建一个项目文件夹,在里面创建项目虚拟环境,CMD运行:
python -m venv shvenv
  1. 激活虚拟环境:
>>>cd shvenv/Scripts
>>>activate
  1. 安装 openpyxl 第三方 python 库
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl

python环境搭建完成,接下来开始编写代码,调试运行!🤪

搭建项目虚拟环境:
搭建项目虚拟环境
安装openpyxl库:
安装openpyxl库

不存在多行合并

如果多行之间不存在合并单元格,这种情况是比较好处理的,直接在最合适的行高的基础上对每一行添加一定的行高即可实现。
新建 批量调整行高.py 文件和 批量调整行高.ini 文件。

打开“批量调整行高.ini”后输入如下代码:

[workbook]
# 工作簿的名字,和运行程序放在同一个文件夹中
wb_path = 你的表格名字

[worksheet]
# 设置开始行号 0 表示不设置
start_row  = 0
# 设置结束行号 0 表示不设置
end_row  = 0
# 设置增加的行高(单位:磅)
add_height = 20
# 对处理行高的限制
limit_row = 100000

打开“批量调整行高.py”后输入如下代码:

import os
import sys
import traceback
import configparser
import openpyxl

try:
    # 获取配置文件信息
    run_folder = os.path.dirname(__file__)  # 获取.py文件的运行路径
    # run_folder = os.path.dirname(os.path.realpath(sys.executable))  # 获取.exe的运行路径
    cfgpath = os.path.join(run_folder, "批量调整行高.ini")
    conf = configparser.ConfigParser()  # 创建管理对象
    conf.read(cfgpath, encoding="utf-8")  # 读取ini文件

    # 打开表格
    print("准备打开表格......")
    wb_path = conf['workbook'].get('wb_path')
    wb = openpyxl.load_workbook(os.path.join(run_folder, wb_path))
    ws = wb.active

    # 设置开始行号
    start_row = conf['worksheet'].getint('start_row')
    if start_row <= 0:
        start_row = 1

    # 设置结束行号
    end_row = conf['worksheet'].getint('end_row')
    if end_row <= 0:
        end_row = ws.max_row
        limit_row = conf['worksheet'].getint('limit_row')
        print(f"工作表的最大行号是: {end_row}")
        if end_row > limit_row:
            print(f'工作表的行号超过了{limit_row}行,请检查表格!')
            raise '表格行号过大!'

    # 在现有行高的基础上增加10磅
    add_height = conf['worksheet'].getint('add_height')
    for row_ind in range(start_row, end_row + 1):
        row_height = ws.row_dimensions[row_ind].height
        if row_height is None:
            row_height = 13.5  # WPS默认行高13.5磅
        ws.row_dimensions[row_ind].height = row_height + add_height
    print(f'工作表批量增加{add_height}磅行高完成!')

    wb.save(wb_path)
    wb.close()
    print("关闭表格!")

except Exception as e:
    # 打印异常的描述
    print(f"运行出错,提示信息:{e}")
    # 打印完整的错误栈信息
    traceback.print_exc()
finally:
    input('程序运行完毕,按回车键退出...')

运行 批量调整行高.py 文件,运行之前记得关闭软件打开的表格哦,不然会报错!当然你也可以新建一个 批量调整行高.bat 文件来点击运行,这样就不用每次输入命令啦。

bat文件的代码如下:

@echo off
chcp 65001
.\shvenv\Scripts\python 批量调整行高.py
pause

最终运行情况如下:
最终运行情况

相关文件资源包:【批量调整表格的行高Python实现源代码(不存在多行合并)】

存在多行合并

多行之间存在合并单元格,这种情况比较复杂,需要计算多行单元格合并后需要的行高,并且要找出需要的行高最大的一列作为最终设置的行高值。

待后续更新。。。。。

不会Python看这里

下载作者羊大侠上传的运行压缩包,解压,点击exe文件直接运行,即可看见测试效果。

点击下载:【批量调整表格行高的Python实现,解决表格换行打印显示不全问题】

运行情况


http://www.kler.cn/a/452475.html

相关文章:

  • Python Polars快速入门指南:LazyFrames
  • 美国辅料查询之FDA批准药用辅料数据库(IID数据库)
  • 12.25周三F34-Day36打卡
  • Echarts连接数据库,实时绘制图表详解
  • Android U 多任务启动分屏——system_server流程(更新中)
  • 【Web】2024“国城杯”网络安全挑战大赛决赛题解(全)
  • 攻防世界 unserialize3
  • 单片机长耗时前后台任务优化
  • 机器学习连载
  • SpringAI人工智能开发框架006---SpringAI多模态接口_编程测试springai多模态接口支持
  • workman服务端开发模式-应用开发-后端api推送工具开发
  • C# OpenCV机器视觉:模板匹配
  • ChatGPT详解
  • 面向微服务的Spring Cloud Gateway的集成解决方案:用户登录认证与访问控制
  • 【UE5 C++课程系列笔记】13——GameInstanceSubsystem的简单使用
  • HTML 画布:创意与技术的融合
  • 【Java】Jackson序列化案例分析
  • Redis生产实践中相关疑问记录
  • 【ollama安装】国内 ubuntu22.04 linux 环境安装ollama教程
  • 学习数量关系
  • 深度学习中的并行策略概述:1 单GPU优化
  • Python调用R语言中的程序包来执行回归树、随机森林、条件推断树和条件推断森林算法
  • NPM老是无法install,timeout?npm install失败
  • Mysql-索引的数据结构
  • 肿瘤电场仪疗法原理:科技之光,照亮抗癌之路
  • UniApp作为前端开发框架,基于Vue.js 的 AI 教学类App开发方案