python:openpyxl取某一行、某一列、应用excel函数

2023-11-15

前言:

(话外:如何取某一列这个,真的是气死我气死我气死我拉!)

依然记录学习使用,属于昨天内容的进阶版!

如果想要基础操作,如创建excel,创建sheet,可以点击下方链接哦~

 python:openpyxl基础操作(一):创建.xlsx文件_豆包的戳苏的博客-CSDN博客

取某一行:

首先,我们快速创建一个表格:

from openpyxl import Workbook
from openpyxl import load_workbook
wb = Workbook()  # pay attention to the first letter

sheet_2 = wb.create_sheet('sheet_2')

for i in range(1, 20):
    for j in range(1, 20):
        sheet_2.cell(i, j, value=j*i)

 

数据够多了。

这时,我们需要了解到,行和列是怎么构成的。下面插播一条手动输入数据的代码(和其它内容无关,只是用来区别行和列的不同) 

rows = (
    (998, 997, 996),
    (787, 988, 876),
    (233, 445, 786)
)

for row in rows:
    sheet.append(row)

 

根据自己输入数据创建excel表格可知,每一行都是一个元组,每一列则不是元组(他是个generator)。 

这个认知非常重要!!

所以在取全部行的时候,很简单,我们只需要遍历一遍表格,得到单个元组,再遍历一遍元组,得到单个对象,并获取它的值。

这个非常简单,两次迭代即可搞定,就不放代码la。

可以选择直接print,也可以创建列表,放在列表里。

如果想要列表好看,就创建两个列表,组成一个二位列表……(就有点类似于dataframe拉嘿嘿串台了)。

我要输出某一行的值:

for i in sheet_2[5]:
    print(i.value, end='\t')
print()
'''
5	10	15	20	25	30	35	40	45	50	55	60	65	70	75	80	85	90	95	
'''

注意:这里,我输入的是5,他输出的是第五行。

和python中index的取值不同,这里输入0,会报错。因为行列都是从1开始的。

取某一列:

行,是一个元组,输出很方便,那么列怎么办呢?

如果上述代码,会直接报错。

我们可以先尝试输出全部的“列”:

list1 = []
for col1 in sheet_2.columns:
    list_1 = []
    for col_1 in col1:
        list_1.append(col_1.value)
    list1.append(list_1)

print(list1)
print(list1[0])

list1是二维列表,list_1是二维列表中的一维列表。

如果想要输出某一行,可以直接利用index。

但是这样很麻烦,数据太多的话,就很慢,能不能只单纯的输出一列?

能。

sheet_2_col = tuple(sheet_2.columns)

for i in range(0, 4):
    for j in sheet_2_col[i]:
        print(j.coordinate, j.value, end="\t")
    print()

以上我取的是1~4列,即:A-D列,输出的是其标号+值。但为什么我写了0?刚刚不是说,没有0吗?

因为我把“列”变成了元组。

元组可以有0。

其实这个方法在处理多数据的时候还是有弊端,我们看看下一个方法。

for i in sheet_2.rows:
    for j in i:
        if 'A' in j.coordinate:
            print(j.coordinate, j.value, end='\t')
    print()

这里只输出了A列。

依然需要遍历一遍才行。

应用excel里的函数:

for i in range(1, 20):
    sheet_2[f"T{i}"] = f'=AVERAGE(A{i}:S{i})'
    sheet_2[f"U{i}"] = f'=SUM(A{i}:S{i})'

sheet_2['V1'] = 'AVERAGE'
sheet_2['W1'] = 'Sum'
for i in range(2, 20):
    sheet_2[f"V{i}"] = f'=AVERAGE(B{i}:S{i})'
    sheet_2[f"W{i}"] = f'=SUM(B{i}:S{i})'

上面有很多小细节需要注意,{i}用来占位,f就是excel里面那个f,注意,引号在等号前面!

如果列表头要添加文字

很简单拉,直接修改单元格内容,并注意公式容纳数据的范围即可。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python:openpyxl取某一行、某一列、应用excel函数 的相关文章

随机推荐

  • ubuntu 20.04 安装 高版本cuda 11.7 和 cudnn最新版

    一 安装显卡驱动 参考另一篇文章 Ubuntu20 04安装Nvidia显卡驱动教程 ytusdc的博客 CSDN博客 二 安装CUDA 英伟达官网 最新版 CUDA Toolkit 12 2 Update 1 Downloads NVID
  • 在 Chrome (谷歌浏览器) 中模拟微信内置浏览器

    原文链接 在 Chrome 谷歌浏览器 中模拟微信内置浏览器 高先生的猫的博客 CSDN博客 chrome模拟微信内置浏览器 1 ios QQ 内置浏览器UA Mozilla 5 0 iPhone CPU iPhone OS 7 1 2 l
  • AndroidQ 获取、设置锁屏密码

    AndroidQ 获取 设置锁屏密码 本文中贴出的源码均为AndroidQ 9 0 源码 如果想要使用需要引入Framework的jar包 LockPatternUtils 说到密码相关的一定要提到LockPatternUtils这个类 它
  • qt中的QT的setWindowFlags的几种属性的总结

    参考博客 https www cnblogs com 132818Creator p 8194603 html 以下是大神博客的原话 setWindowFlags Qt CustomizeWindowHint 设置窗口标题栏自定义 setW
  • Tomcat源码:SocketProcessor、ConnectionHandler与Http11Processor

    前文 Tomcat源码 启动类Bootstrap与Catalina的加载 Tomcat源码 容器的生命周期管理与事件监听 Tomcat源码 StandardServer与StandardService Tomcat源码 Container接
  • I2C接口

    I2C的结构和特点 他是一具有两条总线线路 即一条串行数据线SDA和一条串行时钟线SCL 每个连接到总线上的器件都可以通过唯一的地址联系主机 它是一个真正的多主机总线 数据传输通过冲突检测和仲裁防止数据被破坏 串行的8位双向数据传输位速率更
  • 低秩分解的代码---(CODE) Low-Rank Matrix Recovery

    SAMPLE CODE Robust PCA Matrix Completion Comparison of Algorithms Robust PCA We provide MATLAB packages to solve the RPC
  • xmanager enterprise 5中文破解版下载(附产品密钥)

    xmanager 5破解版是一款功能强大的远程桌面管理软件 广泛用于各种领域的工作 包括大型工艺与半导体和服务器管理设计的IDC 互联网数据中心 大学和公司的服务器管理员与想要通过互联网连接到远程主机的个人用户是这个产品常用群体 xmana
  • centos安装后没有图形化界面

    办法 重新安装 不要选择最小模式 2 连接外网 依次执行安装指令 本人使用第二种方法已经成功 1 yum groupinstall X Window System y 2 yum groupinstall GNOME Desktop 当出现
  • LLMs开源模型们的分布式训练和量化

    前一篇博文整理了 LLMs开源模型们和数据集简介 这篇博文主要整理一下目前流行的训练方法和量化 图自Towards a Unified View of Parameter Efficient Transfer Learning Tuning
  • linux查看服务端口占用情况

    1 netstat命令 查看所有使用的端口 netstat tunlp 参数说明 参数 作用 t 指明显示TCP端口 u 指明显示UDP端口 l 仅显示监听套接字 所谓套接字就是使应用程序能够读写与收发通讯协议 protocol 与资料的程
  • PCL点云处理之批量读写点云、随机赋予颜色 并保存

    include
  • 19级计算机应用技术题库,华东师大计算机应用技术题库.doc

    华东师大计算机应用技术题库 第一章 计算机应用基础知识 一 单选题 1 一般认为 信息 information 是 C A 数据 B 人们关心的事情的消息 C 反映物质及其运动属性及特征的原始事实 D 记录下来的可鉴别的符号 2 信息资源的
  • 文件包含的漏洞、原理、利用

    最近的总结都比较简单 但不是在水 只是在我学习过程中总结的觉得真的有用的知识 还有就是有些代码发不出来我也没办法 所以就有所调整 文件包含原理是啥 文件包含漏洞 即file inclusion 意思是文件包含 是指当服务器开启allow u
  • Runnable和Callable的区别

    Runnable和Callable的区别 Callable接口 Runnable接口 Runnable和Callable的区别 相同点 不同点 注意点 Callable工作的Demo ExcutorService中的excutor和subm
  • 为什么selenium自动化测试能打开浏览器但无法打开网页

    from selenium webdriver import Chrome chrome Chrome executable path C Program Files Google Chrome Application chrome exe
  • Django框架实战:搭建一个小型的服务器运维网站(一)

    本文会遇到很多的代码 如果想要源代码的小伙伴 我已经分享到下方了 想要的可以自己研究一下 本人从事Python开发多年 很多小伙伴说想学一下web中的Django框架 我就用Django框架做一系列的实战项目 欢迎大家订阅 欢迎大家订阅微信
  • MySQL存储很长500的汉字选用字符类型

    问题 我需要用MySQL存储一段文字 在纠结用什么类型 百度了一下选用这些 问题 MySQL怎么存储大段文字1000字左右的 解决 快速通道 mysql里怎么存储很多汉字 我们得了解一下字符类型 一般在保存少量字符串的时候 我们会选择 CH
  • Python输出文字改变颜色

    Python输出文字改变颜色的方法 一 使用注释性输出 一 基本语法 033 显示方式 前景色 背景色m 033 0m 显示方式 前景色 背景色都为可选参数 选择自己需要的即可 而且顺序可变非固定 但建议按照默认顺序书写 注 可添加在pri
  • python:openpyxl取某一行、某一列、应用excel函数

    前言 话外 如何取某一列这个 真的是气死我气死我气死我拉 依然记录学习使用 属于昨天内容的进阶版 如果想要基础操作 如创建excel 创建sheet 可以点击下方链接哦 python openpyxl基础操作 一 创建 xlsx文件 豆包的