【干货】Python:load_workbook用法(持续更新)

article/2025/9/8 21:29:18

【干货】Python中load_workbook用法(持续更新)

  • 功能
  • 方法
    • 示例文件
    • 模块读取
    • 导入excel表格
    • 获取Sheet
    • 查看行与列
    • 查看单元格
    • 批量访问数据

功能

读取excel文件,并进行操作

方法

示例文件

本文用到的示例文件为一个excel表格,含有名为“电子信息1班”和“电子信息2班”两个Sheet。其内容均为成绩单。
在这里插入图片描述

模块读取

>>> from openpyxl import load_workbook

导入excel表格

使用load_workbook('表名.xlsx')导入excel表格:

>>> wb = load_workbook("电信成绩单.xlsx")
>>> wb
<openpyxl.workbook.workbook.Workbook at 0x1ad7ad45ac8>

经过测试发现,active默认首先展示的似乎是,保存excel的时候最后点开的那个Sheet,而非默认展示表格里的第一个Sheet。因此,这里我们显示的是第二个Sheet“电子信息2班”:

>>> ws = wb.active
>>> ws
<Worksheet "电子信息2班">

既然如此,就用第二个sheet作为示例吧!

获取Sheet

  1. 使用get_sheet_by_name('表名')获取指定的表:
>>> wb.get_sheet_by_name('电子信息1班')
<Worksheet "电子信息1班">
  1. 使用get_sheet_names()直接获取全部表名,输出为list形式:
>>> sheet_name = wb.get_sheet_names()
>>> sheet_name
['电子信息1班', '电子信息2班']

查看行与列

  1. 查看最大行数:
>>> row_num = ws.max_row
>>> row_num
5
  1. 查看最大列数:
>>> col_num = ws.max_column
>>> col_num
3

查看单元格

  1. 查看A1单元格的内容:
>>> a1 = ws['A1'].value
>>> a1
'成绩单'

查看A1单元格显示的是“成绩单”,但是A1B1C1被我合并为了一个单元格,是否查看B1C1同样也是返回“成绩单”呢?
在这里插入图片描述
然而,查看B1、C1,显示的为None。看来,合并后的单元格只能默认使用其第一个小单元格地址来查询。

>>> b1 = ws['B1'].value
>>> print(b1)
None
>>> c1 = ws['C1'].value
>>> print(c1)
None
  1. 查看第二行第一列的内容:
>>> b = ws.cell(row = 2,column = 1).value
>>> b
'名字'

批量访问数据

>>> ws.rows
<generator object Worksheet._cells_by_row at 0x000001CDD21BD3B8>
>>> ws.columns
<generator object Worksheet._cells_by_col at 0x000001CDD21BD048>
  1. 按行访问数据:
>>> lst = []
>>> for row in ws.rows:
>>>		for col in row:
>>>        	lst.append(col.value)
>>> print(lst)
['成绩单', None, None, '名字', '体育', '系统控制', '小刘', 90, 50, '小朱', 70, 80, '小孙', 60, 20]
  1. 按列访问数据:
>>> lst = []
>>> for col in ws.columns:
>>> 	for row in col:
>>>     	lst.append(row.value)
>>> print(lst)
['成绩单', '名字', '小刘', '小朱', '小孙', None, '体育', 90, 70, 60, None, '系统控制', 50, 80, 20]

http://chatgpt.dhexx.cn/article/82r6rueo.shtml

相关文章

【Python_笔记】openpyxl中Workbook()和.load_workbook()区别

记录学习旅程~ 欢迎各位道友指教与交流~ 准备开始实操时发现一个问题&#xff0c;即Workbook()是创建一个类对象&#xff0c;而load_workbook()是一个方法加载存在的excel。 由于在学习openpyxl时吸取了不同教程&#xff0c;按照读取→编辑→再编辑→保存的逻辑列举了常用的基…

POI(excel)中WorkBook和Sheet应用实践总结

WorkBook定义 工作簿的高级表现形式&#xff0c;是sheet的上级对象。一个excel就是一个工作簿&#xff0c;一个工作簿含有多个工作表(sheet)。 【1】WorkBook两种创建形式 ① 使用直接对象 // 03版本 .xls org.apache.poi.hssf.usermodel.HSSFWorkbook or //07版本 .xls…

Java多线程:Executors

Executors类位于java.util.concurrent包下&#xff0c;提供了一些方便构建ThreadPoolExecutor和线程管理的方法。 主要方法有以下几个&#xff1a; 1.创建一个固定大小的线程池 public static ExecutorService newFixedThreadPool(int nThreads) {return new ThreadPoolExecu…

【Java多线程】线程池【ExecutorServicec和Executors】

➤ Java多线程编程【一文全解】 背景&#xff1a;经常创建和销毁、使用量特别大的资源&#xff0c;比如并发情况下的线程&#xff0c;对性能影响很大&#xff1b; 思路&#xff1a;提前创建好多个线程&#xff0c;放入线程池中&#xff0c;使用时直接获取&#xff0c;使用完放…

为什么不建议用Executors创建线程池???

来源 | www.cnblogs.com/zjfjava/p/11227456.html 01、通过Executors创建线程池的弊端02、通过ThreadPoolExecutor创建线程池03、ThreadPoolExecutor参数解释04、corePoolSize & maximumPoolSize05、keepAliveTime & unit06、等待队列07、拒绝策略08、ThreadPoolExecut…

Executors和ThreadPoolExecutor详解

概述 在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供&#xff0c;不允许在应用中自行显示的创建线程&#xff0c;这样一方面是线程的创建更加规范&#xff0c;可以合理控制开辟线程的数量&#xff1b;另一方面线程的细节管理交给线程池处理&#xff0c;优化了资…

4.Executor执行器

1.Executor 主体结构 Executor是MyBatis执行者接口&#xff0c;执行器的功能包括&#xff1a; 基本功能&#xff1a;改、查&#xff0c;没有增删的原因是&#xff0c;所有的增删操作都可以归结到改。缓存维护&#xff1a;这里的缓存主要是为一级缓存服务&#xff0c;功能包括…

ExecutorService

本文翻译自http://tutorials.jenkov.com/java-util-concurrent/executorservice.html&#xff0c;人工翻译&#xff0c;仅供学习交流。 ExecutorService java.util.concurrent.ExecutorService接口是一种能够在后台并发执行任务的异步执行机制。本文中&#xff0c;我将会介绍…

Executor概述

在Java类库中&#xff0c;任务执行的主要抽象不是Thread&#xff0c;而是Executor。 public interface Executor {void execute(Runnable command); }它为灵活且强大的异步任务执行框架提供了基础&#xff0c;该框架能支持多种不同类型的任务执行策略。它提供了一种标准的方法…

Executor框架简介

Executor系统中&#xff0c;将线程任务提交和任务执行进行了解耦的设计; 线程被一对一映射为服务所在操作系统线程&#xff0c;启动时会创建一个操作系统线程&#xff1b;当该线程终止时&#xff0c;这个操作系统线程也会被回收 Executor框架包含的核心接口和主要的实现类 具体…

Executors 源码解析(JDK8)

前言 本文隶属于专栏《100个问题搞定Java并发》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见100个问题搞定Java并发 正文 类注释 /*** Factory and util…

Executor框架

转载请以链接形式标明出处&#xff1a; 本文出自:103style的博客 Java并发编程的艺术笔记 并发编程的挑战Java并发机制的底层实现原理Java内存模型Java并发编程基础Java中的锁的使用和实现介绍Java并发容器和框架Java中的12个原子操作类介绍Java中的并发工具类Java中的线程池E…

Executor执行器

分为四个模块&#xff1a; 1.动态代理MapperProxy 2.SQL会话SqlSesson 3.执行器Executor 4.JDBC处理器StatementHandler 现讲述为SQL会话与执行器 一、SQL会话SqlSesson 该门面模式提供一个统一的门面接口API 该模式提供的一个基本API为增删改查&#xff0c;还会提供提…

Java并发多线程编程——Executors类

目录 一、Executors的理解二、Executors类图结构二、Executors常用的方法三、线程池的创建分为两种方式&#xff08;主要介绍通过Executors类创建的方式&#xff09;1、newFixedThreadPool方法示例2、newSingleThreadExecutor方法示例3、newCachedThreadPool方法4、newSchedule…

Executors一篇就够

Executors框架包含的内容十分的多&#xff1a;看图&#xff1a; 一、各个接口的作用 按照图示关系进行介绍&#xff1a; Executor 该接口作为顶层接口只有一个execute()方法 execute(Runnable r) 该接口接受一个Runnable实例&#xff0c;即要执行的任务ExecutorService 该…

Executors工具类的相关方法

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生。本篇将记录创建线程池的Executors工具类里面的方法&#xff0c;方便加深知识印象和复习使用。 本篇文章记录的基础知识&#xff0c;适合在学Java的小白&#xff0c;也适合复习中&#xff0c;面试中的大佬&a…

java并发编程:Executor、Executors、ExecutorService

Executors 在Java 5之后&#xff0c;并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便是Java 5中引入的&#xff0c;其内部使用了线程池机制&#xff0c;它在java.util.cocurrent 包下&#xff0c;通过该框架来控制线程的启动、执行和关闭&#xff0c;可以简化…

nlinfit非线性回归拟合

% % 使用指定函数对下述两变量进行曲线拟合 % % yak1*exp(m*t)k2*exp(-m*t); % % 离散点: t[0,4,8,40], % % y[20.09,64.52,85.83,126.75]; % % t-自变量 y-因变量 a,m,k1,k2为常数 % % 用非线性回归nlinfit&#xff0c;如果数据点多些&#xff0c;效果会更好。 脚本&…

matlab的nlinfit函数,用matlab如何进行非线性拟合 nlinfit函数?

用非线性回归nlinfit&#xff0c;如果数据点多些&#xff0c;效果会更好。 function nonlinefit clc;clear; t[0 4 8 40]; y[20.09 64.52 85.83 126.75]; betanlinfit(t,y,myfunc,[1 1 1 1]) abeta(1) k1beta(2) k2beta(3) mbeta(4) tt0:1:40 yyak1*exp(m*tt)k2*exp(-m*tt) plo…

【MATLAB统计分析与应用100例】案例013:matlab读取Excel数据,调用nlinfit函数作一元非线性回归

1. 一元线性回归分析效果预览 2. matlab完整实现代码 %读取数据,绘制散点图** HeadData = xlsread(examp08_02.xls); %从Excel文