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

python基础-13-处理excel电子表格

文章目录

  • 【README】
  • 【13】处理Excel电子表格
    • 【13.1】Excel文档
    • 【13.2】安装openpyxl模块
    • 【13.3】读取Excel文档
      • 【13.3.1】使用openpyxl模块打开excel文档
      • 【13.3.2】从工作簿取得工作表
      • 【13.3.3】从工作表sheet获取单元格cell
      • 【13.3.5】从表中获取行和列
      • 【13.3.6】工作簿、工作表、单元格复习
    • 【13.5】写入Excel文档
      • 【13.5.1】创建并保存Excel文档
      • 【13.5.2】创建和删除工作表
      • 【13.5.3】把值写入单元格

【README】

本文总结自《python编程快速上手-让繁琐工作自动化》第13章,非常棒的一本书,墙裂推荐;



【13】处理Excel电子表格

【13.1】Excel文档

1)Excel文档:就是一个工作簿,一个工作簿保存到xlsx文件;一个工作簿可以有多个工作表,即sheet;

【13.2】安装openpyxl模块

D:\studynote\00-ai-llm\workbench\PythonBasicStudy\.venv\Scripts>pip install openpyxl
Collecting openpyxlDownloading openpyxl-3.1.5-py2.py3-none-any.whl.metadata (2.5 kB)
Collecting et-xmlfile (from openpyxl)Downloading et_xmlfile-2.0.0-py3-none-any.whl.metadata (2.7 kB)
Downloading openpyxl-3.1.5-py2.py3-none-any.whl (250 kB)
Downloading et_xmlfile-2.0.0-py3-none-any.whl (18 kB)
Installing collected packages: et-xmlfile, openpyxl
Successfully installed et-xmlfile-2.0.0 openpyxl-3.1.5

【13.3】读取Excel文档

【13.3.1】使用openpyxl模块打开excel文档

import openpyxl
from pathlib import Path# 使用openpyxl模块读取excel文件
wb = openpyxl.load_workbook(Path.cwd() / '1301-工作簿.xlsx')
print(type(wb))
# <class 'openpyxl.workbook.workbook.Workbook'>print(wb.sheetnames)
# ['Sheet1', 'Sheet2', 'Sheet3']sheet1 = wb['Sheet1']
print(sheet1['A1'].value)
# id

【13.3.2】从工作簿取得工作表

1)python使用Worksheet抽象工作表

sheet1 = wb['Sheet1']
print(sheet1['A1'].value)
# id

【13.3.3】从工作表sheet获取单元格cell

# 打印行列坐标及值
cell = sheet1['A1']
print(f'[%s][%s] = %s' % (cell.row, cell.column, cell.value))
# [1][1] = id# 通过数字定位行列坐标(从1开始计数)
for i in range(1, 5):for j in range(1, 4):cell = sheet1.cell(i, j)print(f'[%s][%s] = %s' % (cell.row, cell.column, cell.value), end='  ')print()
# [1][1] = id  [1][2] = name  [1][3] = addr
# [2][1] = 1  [2][2] = 张三01  [2][3] = 成都01
# [3][1] = 2  [3][2] = 张三02  [3][3] = 成都02
# [4][1] = 3  [4][2] = 张三03  [4][3] = 成都03

【13.3.5】从表中获取行和列

1)可以把Worksheet切片,取得表格中一行,一列或一个矩形区域中的所有单元格;

wb = openpyxl.load_workbook(Path.cwd() / '1301-工作簿.xlsx')
sheet1 = wb['Sheet1']
sheetTuple = tuple(sheet1['A1':'A3'])
print(sheetTuple)
# ((<Cell 'Sheet1'.A1>,), (<Cell 'Sheet1'.A2>,), (<Cell 'Sheet1'.A3>,))# 获取行与列的单元格
print("====== 从表中获取行和列 ======")
for rowOfCellObjects in sheet1:for cell in rowOfCellObjects:print(cell.coordinate, cell.value, end=' ')print()
# ====== 从表中获取行和列 ======
# A1 id B1 name C1 addr
# A2 1 B2 张三01 C2 成都01
# A3 2 B3 张三02 C3 成都02
# A4 3 B4 张三03 C4 成都03

2)获取整列或整行

# 获取整行
print("\n======= 获取整行 =======")
rowList = list(sheet1.rows)
# rowList = [(<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>)
# , (<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>)
# , (<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>)
# , (<Cell 'Sheet1'.A4>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.C4>)]
print("rowList = " + str(rowList))
for rowObject in rowList:for cellObject in rowObject:print(f'%s = %s ' % (cellObject.coordinate, cellObject.value), end=' ')print()
# A1 = id  B1 = name  C1 = addr
# A2 = 1  B2 = 张三01  C2 = 成都01
# A3 = 2  B3 = 张三02  C3 = 成都02
# A4 = 3  B4 = 张三03  C4 = 成都03

【13.3.6】工作簿、工作表、单元格复习

1)从工作簿读取单元格涉及的所有函数,方法和数据类型;

  • 导入openpyxl模块
  • 调用 openpyxl.load_workbook()函数;
  • 取得Workbook对象; 抽象工作簿;
  • 使用active或sheetnames属性;
    • 使用Workbook对象的active属性获取工作簿的活动表;
  • 取得Worksheet对象;抽象工作表(一个工作簿包含多个工作表)
  • 使用索引或工作表的cell方法,带上row和col坐标;
  • 获取Cell对象;访问Cell.value属性;


【13.5】写入Excel文档

【13.5.1】创建并保存Excel文档

import openpyxl
from pathlib import Pathwb = openpyxl.Workbook()
# 使用Workbook对象的active属性获取工作簿的活动表
sheet01 = wb.active
print(sheet01.title) # Sheet
sheet01.title = 'PythonWriteSheet01'
print(wb.sheetnames) # ['PythonWriteSheet01']
# 保存到xlsx文档
result = wb.save(Path.cwd() / '1305-01工作簿.xlsx')

【13.5.2】创建和删除工作表

1)调用 create_sheet() 和 del操作符 用于创建和删除工作表 ;

  • 注意是工作表,而不是工作簿;一个工作簿可以包含多个工作表;
## 创建和删除工作表
wb = openpyxl.Workbook()
# 创建工作表
wb.create_sheet("PythonWriteSheet10")
print(wb.sheetnames)
# ['Sheet', 'PythonWriteSheet02']# 创建工作表
wb.create_sheet(index=0, title="PythonWriteSheet00")
wb.create_sheet(index=1, title="PythonWriteSheet01")
wb.create_sheet(index=2, title="PythonWriteSheet02")
wb.create_sheet(index=3, title="PythonWriteSheet03")
print(wb.sheetnames)
# ['PythonWriteSheet00', 'PythonWriteSheet01', 'PythonWriteSheet02', 'PythonWriteSheet03', 'Sheet', 'PythonWriteSheet10']# 删除工作表
del wb['PythonWriteSheet10']
print(wb.sheetnames)
# ['PythonWriteSheet00', 'PythonWriteSheet01', 'PythonWriteSheet02', 'PythonWriteSheet03', 'Sheet']# 保存excel文件到磁盘
wb.save(Path.cwd() / '1305-02工作簿.xlsx')
wb.close()

【13.5.3】把值写入单元格

# 把值写入单元格
wb = openpyxl.Workbook()
# 创建工作表
wb.create_sheet("PythonWriteSheetA01")
sheetA01 = wb["PythonWriteSheetA01"]
sheetA01.cell(1, 1, "值1-1")
sheetA01.cell(1, 2, "值1-2")
sheetA01.cell(2, 1, "值2-1")
sheetA01.cell(2, 2, "值2-2")
wb.save(Path.cwd() / '1305-工作簿A01.xlsx')
wb.close()


相关文章:

python基础-13-处理excel电子表格

文章目录 【README】【13】处理Excel电子表格【13.1】Excel文档【13.2】安装openpyxl模块【13.3】读取Excel文档【13.3.1】使用openpyxl模块打开excel文档【13.3.2】从工作簿取得工作表【13.3.3】从工作表sheet获取单元格cell【13.3.5】从表中获取行和列【13.3.6】工作簿、工作…...

03.unity开发资源 获取

03.unity开发资源 获取 提示&#xff1a;帮帮志会陆续更新非常多的IT技术知识&#xff0c;希望分享的内容对您有用。本章分享的是Python基础语法。前后每一小节的内容是存在的有&#xff1a;学习and理解的关联性&#xff0c;希望对您有用~ unity简介-unity基础 第三节 &#xf…...

设计模式简述(四)模板方法模式

模板方法模式 描述基本定义使用 描述 当一系列业务的基本流程是相同的&#xff0c;对于不同的业务可以在各自子类实现 所谓模板方法指的就是父类中固定的那部分代码 其实这里的思想和前面设计原则中开闭原则的描述是一致的&#xff0c;父类中的模板代码就是稳定的部分&#x…...

OpenCV界面编程

《OpenCV计算机视觉开发实践&#xff1a;基于Python&#xff08;人工智能技术丛书&#xff09;》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 OpenCV的Python开发环境搭建(Windows)-CSDN博客 OpenCV也支持有限的界面编程&#xff0c;主要是针对窗口、控件和鼠标…...

【leetcode】记录与查找:哈希表的题型分析

前言 &#x1f31f;&#x1f31f;本期讲解关于力扣的几篇题解的详细介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不…...

AntDesign下,Select内嵌Menu标签,做一个多选下拉框,既可以搜索,还可以选择下拉项

话不多说&#xff0c;直接上效果和代码 效果图一&#xff1a; 效果图二&#xff1a; renderAddStyleOption (item: any) > {const { value } this.props;const { currentSelectedOptionIds, currentStyleId } this.state;const styleSettings value?.styleSettings;c…...

css炫酷的3D水波纹文字效果实现详解

炫酷的3D水波纹文字效果实现详解 这里写目录标题 炫酷的3D水波纹文字效果实现详解项目概述技术栈核心实现1. 基础布局2. 渐变背景3. 文字效果实现3.1 基础样式3.2 文字漂浮动画 4. 水波纹效果4.1 模糊效果4.2 水波动画 5. 交互效果 技术要点项目难点与解决方案总结 项目概述 在…...

P1036 [NOIP 2002 普及组] 选数(DFS)

题目描述 已知 n 个整数 x1​,x2​,⋯,xn​&#xff0c;以及 1 个整数 k&#xff08;k<n&#xff09;。从 n 个整数中任选 k 个整数相加&#xff0c;可分别得到一系列的和。例如当 n4&#xff0c;k3&#xff0c;4 个整数分别为 3,7,12,19 时&#xff0c;可得全部的组合与它…...

PyTorch中.pth文件的解析及应用

文章目录 一、.pth文件简介二、如何保存.pth文件三、如何加载.pth文件跨硬件加载加载后操作 四、.pth文件的结构与内容解析.pth文件示例 五、.pth文件的优缺点优点缺点 六、常见应用场景七、模型文件体积优化技巧问题背景解决方案效果对比 八、总结九、参考 一、.pth文件简介 …...

【doris】在线事务处理

目录 1. 说明2. 特点3. 应用场景4. 技术实现5. OLTP 与 OLAP 的对比6. 挑战7. 发展趋势 1. 说明 1.OLTP&#xff08;Online Transaction Processing&#xff0c;在线事务处理&#xff09; 是一种用于处理大量日常事务操作的数据库系统类型。2.它主要面向实时性要求高、数据操作…...

后端思维之高并发处理方案

前言 在互联网时代&#xff0c;高并发已经成为后端开发者绕不开的话题。无论是电商平台的秒杀活动、抢购系统&#xff0c;还是社交应用的高频互动&#xff0c;高并发场景的出现往往伴随着巨大的技术挑战。 如何在流量激增的同时&#xff0c;确保系统稳定运行、快速响应&#xf…...

OpenCV 图形API(10)用于执行标量除以矩阵的逐元素操作函数divRC()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 描述 标量除以矩阵。 函数 divRC 将给定的标量除以矩阵 src 的每个元素&#xff0c;并将结果保存在与 src 具有相同大小和类型的新的矩阵中&#xff1a; …...

14.2linux中platform无设备树情况下驱动LED灯(详细编写程序)_csdn

我尽量讲的更详细&#xff0c;为了关注我的粉丝&#xff01;&#xff01;&#xff01; 因为这跟之前的不一样&#xff0c;提出来驱动的分离和分层。 提到驱动分离和分层&#xff0c;必然可以联系上一章咱们知道的驱动-总线-设备。 在无设备树的状态下&#xff0c;必然要写寄存…...

K8s的BackUP备份

文章目录 1、kubeadm 安装的单 master 节点数据备份和恢复方式2、Velero 工具3、Velero 服务部署4、备份还原数据 ETCD备份/还原有多种类型&#xff0c;取决于你 k8s 集群的搭建方式 1、kubeadm 安装的单 master 节点数据备份和恢复方式 拷贝 etcdctl 至 master 节点&#xf…...

Ruoyi-vue plus 5.2.2 flowble设计流程点击开始流程图错误

网关设置条件或者是事件删除后出现&#xff0c;点击网关节点无法找到下面的事件节点。 配置页面事件错误&#xff0c;点背景配置进去了事件&#xff0c;发现再次加载&#xff0c;或者删除的时候VUE页面无法加载。 解决方式&#xff1a;查看XML文件&#xff0c;这个节点是否存在…...

如何快速入门物联网单片机开发?

背景 物联网单片机硬件开发涉及多个阶段&#xff0c;元器件是否“自己设计”取决于具体需求。以下是详细解答和学习方案&#xff1a; 一、元器件是否自己设计&#xff1f; 通用元器件&#xff1a; 大多数情况下&#xff0c;开发者直接使用现成的标准化元器件&#xff08;如电阻…...

在 .NET 8 中使用自定义令牌身份验证掌握 SignalR Hub 安全性

最近在练习做一个 Web 开发项目&#xff0c;需要使用 WebSockets 传输数据&#xff0c;实现实时通信。这是一个 React.js 项目&#xff0c;后端是 .NET。 虽然 MSDN 提供了出色的顶级文档&#xff0c;但它通常缺少高级用例所需的低级细节。 一种这样的场景是使用自定义令牌对…...

《SQL赋能人工智能:解锁特征工程的隐秘力量》

在当今的科技发展进程中&#xff0c;人工智能&#xff08;AI&#xff09;已经成为推动各领域变革的核心驱动力。而在人工智能的庞大体系里&#xff0c;特征工程占据着举足轻重的地位&#xff0c;它是将原始数据转化为能够让模型有效学习的特征的关键环节。鲜有人深入探讨的是&a…...

基于springboot+vue的二手车交易系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

React安装使用教程

ReactAnt Designrouteraxios安装完整教程 官网&#xff1a;React Native 中文网 使用React来编写原生应用的框架 一&#xff0c;安装 npx create-react-app my-app npm start npm eject 暴露项目优先提交代码 git add . git commit -m “搭建项目“ 4.yarn add node-sass …...

Day20 -自动化信息收集工具--ARL灯塔的部署

准备&#xff1a; 纯净的Docker环境 ARL的包 一、Docker的部署 00x1 更新系统包 sudo apt update 00x2 安装必要的依赖包 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common 00x3 下载docker和docker-compose apt-get install do…...

高级:分布式系统面试题精讲

一、引言 分布式系统在现代软件开发中占据重要地位&#xff0c;其设计和实现需要考虑多个关键因素。面试官通过相关问题&#xff0c;考察候选人对分布式系统核心概念的理解、实际应用能力以及在复杂场景下的问题解决能力。本文将深入分析分布式系统的CAP定理、一致性协议、分布…...

Java 实现冒泡排序:[通俗易懂的排序算法系列之二]

引言 大家好!欢迎来到我的排序算法系列第二篇。今天,我们将学习另一种非常基础且广为人知的排序算法——冒泡排序 (Bubble Sort)。 冒泡排序的名字非常形象,它模拟了水中气泡上升的过程:较小(或较大)的元素会像气泡一样,通过不断交换,逐渐“浮”到数组的一端。 什么是…...

精品可编辑PPT | “新基建”在数字化智慧高速公路中的支撑应用方案智慧建筑智慧交通解决方案施工行业解决方案

本文详细阐述了“新基建”在数字化智慧高速公路中的支撑应用方案&#xff0c;从政策背景出发&#xff0c;指出国家在交通领域的一系列发展规划和指导意见&#xff0c;强调了智慧交通建设的重要性。分析了当前高速公路存在的问题&#xff0c;如基础感知设施不足、协同水平低、服…...

【瑞萨 RA-Eco-RA2E1-48PIN-V1.0 开发板测评】PWM

【瑞萨 RA-Eco-RA2E1-48PIN-V1.0 开发板测评】PWM 本文介绍了瑞萨 RA2E1 开发板使用内置时钟和定时器实现 PWM 输出以及呼吸灯的项目设计。 项目介绍 介绍了 PWM 和 RA2E1 的 PWM 资源。 PWM 脉冲宽度调制&#xff08;Pulse Width Modulation, PWM&#xff09;是一种对模拟…...

高级:微服务架构面试题全攻略

一、引言 在现代软件开发中&#xff0c;微服务架构被广泛应用于构建复杂、可扩展的应用程序。面试官通过相关问题&#xff0c;考察候选人对微服务架构的理解、拆分原则的掌握、服务治理的能力以及API网关的运用等。本文将深入剖析微服务架构相关的面试题&#xff0c;结合实际开…...

数据流和重定向

1、数据流 不管正确或错误的数据都是默认输出到屏幕上&#xff0c;所以屏幕是混乱的。所以就需要用数据流重定向将这两 条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去 标准输入&#xff08;standard input&#xff0c;简称stdin&#xff…...

Excel时间类型函数(包括today、date、eomonth、year、month、day、weekday、weeknum、datedif)

目录 1. TODAY()2. DATE()3. EOMONTH()4. YEAR()5. MONTH()6. DAY()7. WEEKDAY()8. WEEKNUM()9. DATEDIF()10.&#x1f4cc; 函数扩展与应用11. &#x1f4da; 时间函数基础概念与分类 Excel 提供了许多 日期与时间类型的函数&#xff0c;用于操作与处理日期或时间数据。这些函…...

【GPT入门】第33 课 一文吃透 LangChain:chain 结合 with_fallbacks ([]) 的实战指南

[TOC](【GPT入门】第33课 一文吃透 LangChain&#xff1a;chain 结合 with_fallbacks ([]) 的实战指南) 1. fallback概述 模型回退&#xff0c;可以设置在llm上&#xff0c;也可以设置在chain上&#xff0c;都带有with_fallbacks([])函数 2. llm的回退 2.1 代码 核心代码&…...

高级语言程序设计

第八章 结构体类型和自定义类型-CSDN博客 第九章 预编译处理-CSDN博客 第十章 文件-CSDN博客...