关于Python里xlwings库对Excel表格的操作(十七)

这篇小笔记主要记录如何【获取和设置单元格行高、列宽】。
前面的小笔记已整理成目录,可点链接去目录寻找所需更方便。
【目录部分内容如下】【点击此处可进入目录】
(1)如何安装导入xlwings库;
(2)如何在Wps下使用xlwings中使用WPS对表格操作;
(3)如何安装导入xlwings库、如何用xlwings打开要操作的Excel表格;
(4)如何使用xlwings对Excel表格数据进行读取操作;
(5)如何使用xlwings对Excel表格进行“保存”或“另存为”操作;
(6) 如何使用xlwings对Excel表格进行写入数据操作;
(7)如何使用xlwings向Excel表格中写入Excel公式;
(8)如何使用xlwings库中的“name"函数和“replace”函数对工作表进行改名;
。。。。。。等等
【获取单元格的行高】用“range”函数中的“.row_height”方法获取单元格的行高。

(1)Row_A1_0=Work_Sheet.range('A1').row_height

#用“range”函数中的“.row_height”方法获取单元格“A1"的行高即第1行行高,无论是"A1"还是"B1"实际上都是获取第1行的行高。

(2)Row_A1_All=Work_Sheet.range('A1').expand('down').row_height

#用“range”函数中的“.row_height”方法获取单元格“A1"所在列下方所有行的行高。

#注:因为行高读取出来的值只有一个,所以当这些行中的行高不同时则返回“None”值。

【设置单元格的行高】用“range”函数中的“.row_height=行高数值”方法获取单元格的行高。

(3)Work_Sheet.range('A1').row_height=30

#Work_Sheet是指当前激活的工作表

#“range('A1').row_height=30是指用“range”函数中的“.row_height=”方法设置单元格“A1"的行高设置为30(即第1行行高为30),无论是"A1"还是"B1"实际上结果都一样。

(4)Work_Sheet.range('A1').expand('down').row_height=30

#Work_Sheet是指当前激活的工作表

#.range('A1').expand('down').row_height=30是指用“range”函数中的“.row_height”方法结合”.expand('down')“设置单元格“A1"下方所有行的行高都设置为30。

【获取单元格的列宽】用“range”函数中的“.column_width”方法获取单元格的列宽。(1)Colunm_A1_0=Work_Sheet.range('A1').column_width

#Work_Sheet是指当前激活的工作表

#用“range”函数中的“.row_height”方法获取单元格“A1"的列宽即第A列列宽,无论是"A1"还是"A2"实际上都是获取第A列的列宽。

(2)Colunm_A1_All=Work_Sheet.range('A1').expand('right').column_width

#Work_Sheet是指当前激活的工作表

#用“range”函数中的“.column_width”方法获取单元格“A1"所在行右方所有列的列宽。

#注:因为列宽读取出来的值只有一个,所以当这些列中的列宽不同时则返回“None”值。

【设置单元格的列宽】用“range”函数中的“.column_width”方法获取单元格的列宽。(3)Work_Sheet.range('A1').column_width=30

#Work_Sheet是指当前激活的工作表

#.range('A1').column_width=30是指用“range”函数中的“.row_height”方法设置单元格“A1"的列宽即第A列列宽为30,无论是"A1"还是"A2"实际上结果都一样。

(4)Work_Sheet.range('A1').expand('right').column_width=20

#Work_Sheet是指当前激活的工作表

#.range('A1').expand('right').column_width=20用“range”函数中的“.column_width”方法结果”.expand('right')“设置单元格“A1"所在右方所有列的列宽都设置为20。

【自动调整行高和列宽】用“range”函数中的“.autofit”方法自动调整行高和列宽。

(1)Work_Sheet.range('A1').expand('right').autofit()

#Work_Sheet是指当前激活的工作表

#.range('A1').expand('right').autofit()是指用“range”函数中的“.autofit”方法结果“.expand('right')”自动调整行高;

#这里不是以“A1”单元格为自动调整标准,而是以"A1"单元格所在行(即第1行)最大单元格行高作为自动调整标准,其它单元格行高跟随变化。因此,上述语句与“Work_Sheet.range('A1').autofit()”和“Work_Sheet.range('1:1').autofit()”结果都一样。

(2)Work_Sheet.range('A1').expand('down').autofit()

#Work_Sheet是指当前激活的工作表

#.range('A1').expand('down').autofit()是指用“range”函数中的“.autofit”方法结果“.expand('down')”自动调整列宽;

#这里是以“A1”单元格为第A列自动调整标准而不是以这一列最宽的单元格为自动调整标准,其它单元格行高跟随变化。因此,上述语句不同于“Work_Sheet.range('A:A').autofit()”,它们结果不一样。后者,是以第A列最大列宽为自动调整标准。

(3)Work_Sheet.range('A1').expand('table').autofit()

#Work_Sheet是指当前激活的工作表

#.range('A1').expand('table').autofit()是以“A1”单元格的右方和下方区域各行各列根据本行本列的最大行高最大列宽进行自动调整。

【举列说说更直观】

'''
【设置单元格行高和列宽。】
一、行高获取和设置(row_height):
    用“range”函数中的“.row_height”参数(方法)设置单元格的行高;
二、列宽获取和设置(column_width):
    用“range”函数中的“.column_width”参数(方法)设置单元格的列宽;
三、用“range”函数中的“.autofit”参数(方法)设置单元格“自动调整行高和列宽”。
最后保存操作。
'''
import xlwings as xw
app=xw.App(visible=False,add_book=False)
app.display_alerts=False               #关闭各种提示信息,可以提高运行速度
File_Name='E:/素材/学生成绩表.xls'
#打开要处理的Excel文件名
Work_Book=app.books.open(File_Name)      
#打开要处理的Excel文件中的工作簿
Work_Sheet=Work_Book.sheets[0]      
#打开要处理的Excel工作簿中的工作表;
#“[0]”是指定打开最靠前的第1份工作表,也可以把“0”写成要打开的指定要打开的“工作表的名称”;
#现在只打开这一个工作表也相当于激活这工作表,后面没有打开激活另一工作表,则所有操作只对现这工作表起作用。

Row_A1_0=Work_Sheet.range('A1').row_height
#用“range”函数中的“.row_height”方法获取单元格“A1"的行高即第1行行高,无论是"A1"还是"B1"实际上都是获取第1行的行高。
Row_A1_All=Work_Sheet.range('A1').expand('down').row_height
#用“range”函数中的“.row_height”方法获取单元格“A1"所在列下方所有行的行高。
print(f'单元格“A1”所在行(即第1行)的原行高是:{Row_A1_0}')
print(f'单元格“A1”及下方所有行的行高是:{Row_A1_All}\n(注:因为行高读取出来的值只有一个,所以当这些行中的行高不同时则返回“None”值。)')

Colunm_A1_0=Work_Sheet.range('A1').column_width
#用“range”函数中的“.row_height”方法获取单元格“A1"的列宽即第A列列宽,无论是"A1"还是"A2"实际上都是获取第A列的列宽。
Colunm_B1_Right=Work_Sheet.range('B1').expand('right').column_width
#用“range”函数中的“.column_width”方法获取单元格“B1"所在行右方所有列的列宽。
Colunm_A1_All=Work_Sheet.range('A1').expand('right').column_width
#用“range”函数中的“.column_width”方法获取单元格“B1"所在行右方所有列的列宽。
print(f'单元格“A1”所在列(即第A列)的原列宽是:{Colunm_A1_0}')
print(f'单元格“B1"及右方所有列(即第B、C、D...等)的原列宽是:{Colunm_B1_Right}')
print(f'单元格“A1”及右方所有列(即第A、B、C、D...等)的原列宽是:{Colunm_A1_All}\n(注:因为列宽读取出来的值只有一个,所以当这些列中的列宽不同时则返回“None”值。)')

Work_Sheet.range('A1').expand('right').autofit()
#用“range”函数中的“.autofit”方法结果“.expand('right')”自动调整行高
#这里不是以“A1”单元格为自动调整标准,而是以"A1"单元格所在行(即第1行)最大单元格行高作为自动调整标准,其它单元格行高跟随变化。
#因此,上述语句与“Work_Sheet.range('A1').autofit()”和“Work_Sheet.range('1:1').autofit()”结果都一样。
Work_Sheet.range('A1').expand('down').autofit()
#用“range”函数中的“.autofit”方法结果“.expand('down')”自动调整列宽
#这里是以“A1”单元格为第A列自动调整标准而不是以这一列最宽的单元格为自动调整标准,其它单元格行高跟随变化。
#因此,上述语句不同于“Work_Sheet.range('A:A').autofit()”,它们结果不一样。后者,是以第A列最大列宽为自动调整标准。
Row_A1_Auto=Work_Sheet.range('A1').row_height
Column_A1_Auto=Work_Sheet.range('A1').column_width
print(f'单元格“A1”所在行(即第1行)的自动调整后的行高是:{Row_A1_Auto}')
print(f'单元格“A1”所在列(即第A列)的自动调整后的列宽是:{Column_A1_Auto}')

#Work_Sheet.range('A1').expand('table').autofit()
#以“A1”单元格的右方和下方区域各行各列根据本行本列的最大行高最大列宽进行自动调整


Work_Book.save()
#保存改动的工作簿。若无保存,则上述操作会随着工作簿的关闭而作废不保存。
Work_Book.close()
#关闭工作簿。
app.quit()
#退出Office软件,不驻留后台。

【运行前的表格】

【运行后的表格】

【终端显示结果】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/268665.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python】pip管理Python包

命令&#xff1a;pip install <包名> 安装指定的包。 pip install ipython #或者 pip install ipython -i https://mirrors.aliyun.com/pypi/simple/ 命令&#xff1a;pip uninstall <包名> 删除指定的包。 pip uninstall ipython 命令&#xff1a;pip list 显…

SpringBoot2.x+mybatis plus3.x集成Activit7版本

文/朱季谦 在Activiti6版本当中&#xff0c;若要集成到Springboot里&#xff0c;需要写一些额外的配置类&#xff0c;我曾经在Activiti工作流框架学习笔记&#xff08;二&#xff09;之springboot2.0整合工作流Activiti6.0一文当中总结过相关配置过程&#xff0c;感兴趣的同学…

Leetcode162. 寻找峰值

Every day a Leetcode 题目来源&#xff1a;162. 寻找峰值 解法1&#xff1a;STL 代码&#xff1a; class Solution { public:int findPeakElement(vector<int>& nums) {return max_element(nums.begin(), nums.end()) - nums.begin();} };复杂度分析&#xff1…

【二叉树】【单调双向队列】LeetCode239:滑动窗口最大值

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调双向队列 二叉树 题目 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动…

Python 数据分析 Matplotlib篇 时间序列数据绘制折线图(第4讲)

Python 数据分析 Matplotlib篇 时间序列数据绘制折线图(第4讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…

关于“Python”的核心知识点整理大全40

目录 alien_invasion.py game_functions.py 14.3.3 在外星人被消灭时更新得分 settings.py game_functions.py game_functions.py alien_invasion.py 14.3.4 将消灭的每个外星人的点数都计入得分 game_functions.py 14.3.5 提高点数 settings.py settings.py 注意…

swing快速入门(二十七)

注释很详细&#xff0c;直接上代码 上一篇 新增内容 1.为按钮指定图标 2. 列表框的并列 3.菜单项绑定快捷键 4.控件悬浮提示信息 5.菜单项设置小图标 6.五种布局风格右键选择切换 package swing21_30;import javax.swing.*; import java.awt.*; import java.awt.event.…

单聊和群聊

TCP协议单聊服务端&#xff1a; import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Vec…

浅谈Springboot默认logger函数的使用

目录 前言1. logger日志2. 补充 前言 原先写过一篇logger日志函数的总结&#xff0c;不同的引用来源&#xff1a;java常见log日志的使用方法详细解析 但是为了不引入依赖包&#xff0c;更好的直接使用&#xff0c;总结了如下博文 1. logger日志 Spring Boot使用Spring框架中…

MySQL undo日志精讲2-undo日志写入

通用链表结构 在写入undo日志的过程中会使用到多个链表&#xff0c;很多链表都有同样的节点结构&#xff0c;如图所示&#xff1a;在某个表空间内&#xff0c;我们可以通过一个页的页号和在页内的偏移量来唯一定位一个节点的位置&#xff0c;这两个信息也就相当于指向这个节点…

SQL实践篇(一):使用WebSQL在H5中存储一个本地数据库

文章目录 简介本地存储都有哪些&#xff1f;如何使用WebSQL打开数据库事务操作SQL执行 在浏览器端做一个英雄的查询页面如何删除本地存储参考文献 简介 WebSQL是一种操作本地数据库的网页API接口&#xff0c;通过它&#xff0c;我们可以操作客户端的本地存储。 WebSQL曾经是H…

Flutter windows 环境配置

Flutter windows 环境配置 从零开始&#xff0c;演示flutter环境配置到启动项目&#xff0c;同时支持 vscode 和 android studio 目录 Flutter windows 环境配置一、环境配置1. Flutter SDK2. Android Studio3. JDK4. 拓展安装5. Visual Studio 2022二、项目创建和启动1. vsco…

Midjourney V6 引爆社交媒体,AI图像与照片的差别消失;LangChain的2023AI发展状况总结

&#x1f989; AI新闻 &#x1f680; Midjourney V6 引爆社交媒体&#xff0c;AI图像与照片的差别消失 摘要&#xff1a;Midjourney V6 第二次社区评价震惊网友&#xff0c;神图细节逼真&#xff0c;光影效果逆天&#xff0c;皮肤质感细腻&#xff0c;已超越昨日版本。V6即将…

交友系统设计:哪种地理空间邻近算法更快?

小熊学Java&#xff1a;https://javaxiaobear.cn 交友与婚恋是人们最基本的需求之一。随着互联网时代的不断发展&#xff0c;移动社交软件已经成为了人们生活中必不可少的一部分。然而&#xff0c;熟人社交并不能完全满足年轻人的社交与情感需求&#xff0c;于是陌生人交友平台…

Go语言中的`sync`包同步原语

通过sync包掌握Go语言的并发 并发是现代软件开发的基本方面&#xff0c;而Go&#xff08;也称为Golang&#xff09;为并发编程提供了一套强大的工具。在Go中用于管理并发的基本包之一是sync包。在本文中&#xff0c;我们将概述sync包&#xff0c;并深入探讨其最关键的同步原语…

【adb】电脑通过ADB向手机设备传输文件

具体步骤如下&#xff1a; Step1 下载ADB工具 下载最新版本的 ADB工具 !!! 注意&#xff1a;一定要是最新版本的ADB&#xff0c;否则很可能导致无法识别到手机。 将下载的ADB解压以后的文件如下图所示&#xff1a; Step2 添加环境变量 将 ABD 的路径 D:\platformtools &am…

java进阶(二)-java小干货

java一些精干知识点分享 2. java小干货2.1循环遍历2.2可变参数2.3 list和数组转化2.3.1 数组转list2.3.2 list转数组 2.4 值传递和地址传递2.4.1值传递2.4.2 地址传递2.4.3易错点总结 2.5 数组数组帮助类Arrays 2.5 基本数据类型和包装类2.5集合2.6文件流2.7java代码块、内部类…

Nginx快速入门:实现企业安全防护|nginx部署https,ssl证书(七)

0. 引言 之前我们讲到nginx的一大核心作用就是实现企业安全防护&#xff0c;而实现安全防护的原理就是通过部署https证书&#xff0c;以此实现参数加密访问&#xff0c;从而加强企业网站的安全能力。 nginx作为各类服务的统一入口&#xff0c;只需要在入口处部署一个证书&…

第二十一章博客

计算机应用实现了多台计算机间的互联&#xff0c;使得它们彼此之间能够进行数据交流。网络应用程序就是在已连接的不同计算机上运行的程序&#xff0c;这些程序借助于网络协议&#xff0c;相互之间可以交换数据。编写网络应用程序前&#xff0c;首先必须明确所要使用的网络协议…

C++面试宝典第9题:找出第K大元素

题目 给定一个整数数组a,同时给定它的大小N和要找的K(1 <= K <= N),请根据快速排序的思路,找出数组中第K大的数(保证答案存在)。比如:数组a为[50, 23, 66, 18, 72],数组大小N为5,K为3,则第K大的数为50。 解析 这道题主要考察应聘者对于快速排序的理解,以及实…