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

news2024/9/29 5:35:52

这篇小笔记主要记录如何【获取和设置单元格行高、列宽】。
前面的小笔记已整理成目录,可点链接去目录寻找所需更方便。
【目录部分内容如下】【点击此处可进入目录】
(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软件,不驻留后台。

【运行前的表格】

【运行后的表格】

【终端显示结果】

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于flask和echarts的新冠疫情实时监控系统源码+数据库,后端基于python的flask框架,前端主要是echarts

介绍 基于flask和echarts的新冠疫情实时监控系统 软件架构 后端基于python的flask框架,前端主要是echarts 安装教程 下载到本地,在python相应环境下运行app.py,flask项目部署请自行完成 使用说明 flaskProject文件夹中 app.py是flask项目主运行文…

BUG记录 | 使用阿里云OSS实现文件上传后,得到的url无法在浏览器中打开

项目背景 SpringBoot的项目,使用阿里云对象存储OSS对项目中的文件进行存储,所需文件也会通过IDEA中由官方Demo改编而成的工具类作为接口,调用接口后上传 问题描述 使用阿里云OSS实现文件上传后,通过postman测试得到的url无法在…

C# Onnx Yolov8 Detect yolov8n、yolov8s、yolov8m、yolov8l、yolov8x 对比

目录 效果 yolov8n yolov8s yolov8m yolov8l yolov8x 模型信息 项目 代码 下载 C# Onnx Yolov8 Detect yolov8n、yolov8s、yolov8m、yolov8l、yolov8x 对比 效果 yolov8n yolov8s yolov8m yolov8l yolov8x 模型信息 Model Properties ------------------------- d…

ubuntu22.04 下载路径

ftp下载路径 csdn下载 ubuntu22.04下载路径ubuntu-22.04-desktop-amd64.7z.001资源-CSDN文库 ubuntu22.04下载路径ubuntu-22.04-desktop-amd64.7z.002资源-CSDN文库 【免费】ubuntu-22.04-desktop-amd64.7z.003资源-CSDN文库 【免费】ubuntu-22.04-desktop-amd64.7z.004资源-…

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

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

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

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

【GitHub精选项目】抖音/ TikTok 视频下载:TikTokDownloader 操作指南

前言 本文为大家带来的是 JoeanAmier 开发的 TikTokDownloader 项目,这是一个高效的下载 抖音/ TikTok 视频的开源工具。特别适合用户们保存他们喜欢的视频或分享给其他人。 TikTokDownloader 是一个专门设计用于下载 TikTok 视频的工具,旨在为用户提供一…

学习C语言可以从以下几个方面入手

学习C语言可以从以下几个方面入手: 了解基础知识:首先,你需要了解C语言的基本语法和规则,包括变量、数据类型、运算符、控制结构等。可以通过阅读相关的教材或在线教程来学习这些基础知识。动手实践:理论知识的学习是…

大数据应用开发1——配置基础环境

一、基础环境配置 1.配置虚拟网络 1.1、点击1、编辑2和3, 1.2、点开4,编辑网关 2、配置虚拟机环境 1.1、安装一台虚拟机,使用root用户登录,打开终端 1.2修改主机名 终端输入: vim /etc/hostname使用vim编辑/etc/ho…

linux异步IO的几种方法及重点案例

异步IO的方法 在Linux下,有几种常见的异步I/O(Asynchronous I/O)机制可供选择。以下是其中一些主要的异步I/O机制: POSIX AIO(Asynchronous I/O):POSIX AIO是一种标准的异步I/O机制&#xff0c…

自动驾驶学习笔记(二十二)——自动泊车算法

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 感知算法 定位算法 规划算法…

可靠度理论中“设计基准期”、“设计使用年限”、“使用寿命”几个概念的区分

文章目录 0. 背景1. 重现期2. 设计基准期3. 设计使用年限调整系数4. 一把杆秤5. 调整系数的补充说明Last 0. 背景 在可靠度理论中,经常遇见“设计基准期”、“设计使用年限”、“使用寿命”几个概念。这些概念搞不清楚对于梳理结构荷载组合而言就是致命的。本文也是…

关联规则+聚类分析+分类算法(数据挖掘)

3.关联规则 经典案例 : 尿布与啤酒的故事; 基本概念 : 设I {i1,i2,....im}是项(Item)的集合。 D 是 事务(transaction)的集合(事务数据库)。 事务T是项的集合,且对每个事务具有唯一的标识: 事务号,记作TID; 设A是I中的一个项集&#xf…

恶意软件分析沙箱在网络安全策略中处于什么位置?

恶意软件分析沙箱提供了一种全面的恶意软件分析方法,包括静态和动态技术。这种全面的评估可以更全面地了解恶意软件的功能和潜在影响。然而,许多组织在确定在其安全基础设施中实施沙箱的最有效方法方面面临挑战。让我们看一下可以有效利用沙盒解决方案的…

【动态规划】11简单多状态 dp 问题_按摩师_C++(easy)

题目链接:leetcode按摩师 目录 题目解析: 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析: 题目让我们求按摩师找到最优的预约集合(总预约时间最长) 由题可得&#xff…

Java - 工厂设计模式

Java - 工厂设计模式 一. 简介二. 例子2.1 定义抽象类2.2 定义子类2.3 创建工厂2.4 测试 三. JDK中使用工厂模式的案例 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 工厂设计模式…

复分析——第1章——复分析准备知识(E.M. Stein R. Shakarchi)

第一章 复分析准备知识 (Preliminaries to Complex Analysis) The sweeping development of mathematics during the last two centuries is due in large part to the introduction of complex numbers; paradoxically, this is based on the seemingly absurd no…

[机器人-3]:开源MIT Min cheetah机械狗设计(三):嵌入式硬件设计

目录 概述: 1、硬件组成 2、通信速率 3、通信协议 4、mbedOS 概述: 以1条腿进行设计,其它腿也一样: 腿部硬件组成 1、硬件组成 1)UP board计算机板卡(Linux OS): 腿部控制器…

YOLOv8改进 | 主干篇 | 利用SENetV2改进网络结构 (全网首发改进)

一、本文介绍 本文给大家带来的改进机制是SENetV2,其是2023.11月的最新机制(所以大家想要发论文的可以在上面下点功夫),其是一种通过调整卷积网络中的通道关系来提升性能的网络结构。SENet并不是一个独立的网络模型,而是一个可以和现有的任何…

ubuntuxu双系统安装+git/g++/vim+pytorch+opencv+yolo+sitl相关学习

multirotor The first day ——12.10 1.install vmware-workstation and ubuntu swap sources and 换输入法 2.learn git github关联远程仓库 3.install and use Typora Git codemeaningmkdir test创建目录cd test进入目录git init初始化仓库ls ;ls -ah查看目…