Python 读写 Excel 文件:创建、遍历、更新与样式处理

news/2024/9/19 4:46:41/ 标签: python, excel

Excel 是广泛使用的电子表格软件,用于数据存储、分析和可视化。Python 通过第三方库如 openpyxlpandas 提供了丰富的功能来读写 Excel 文件。本文将详细介绍如何使用 Python 进行 Excel 文件的创建、遍历、更新、删除以及样式处理等操作。

1. 安装必要的库

首先,需要安装 openpyxl 库,这是一个用于读写 Excel 文件的库。可以通过 pip 安装:

pip install openpyxl
2. 创建 Excel 文件

使用 openpyxl 创建一个新的 Excel 工作簿,并向其中添加数据。

python">from openpyxl import Workbook# 创建一个新的工作簿
wb = Workbook()# 获取活动工作表
ws = wb.active
ws.title = "Sheet1"# 向工作表中添加数据
ws['A1'] = 'Name'
ws['B1'] = 'Age'
ws['C1'] = 'City'ws.append(['Alice', 30, 'New York'])
ws.append(['Bob', 25, 'Los Angeles'])# 保存工作簿
wb.save("example.xlsx")
3. 单个表格文件遍历

遍历单个 Excel 文件中的所有数据。

python">from openpyxl import load_workbook# 加载已有的工作簿
wb = load_workbook("example.xlsx")# 获取工作表
ws = wb.active# 遍历每一行
for row in ws.iter_rows(values_only=True):print(row)
4. 批量表格文件遍历

遍历多个 Excel 文件中的数据。

python">import os# 指定目录路径
directory = "excel_files"# 遍历目录中的所有 Excel 文件
for filename in os.listdir(directory):if filename.endswith(".xlsx"):filepath = os.path.join(directory, filename)wb = load_workbook(filepath)ws = wb.active# 遍历每一行for row in ws.iter_rows(values_only=True):print(row)
5. 从指定行列遍历表格

从指定的行和列开始遍历表格数据。

python"># 加载工作簿
wb = load_workbook("example.xlsx")
ws = wb.active# 从第2行第2列开始遍历
for row in ws.iter_rows(min_row=2, min_col=2, values_only=True):print(row)
6. 表格数据更新

更新表格中的数据。

python"># 加载工作簿
wb = load_workbook("example.xlsx")
ws = wb.active# 更新单元格数据
ws['B2'] = 31# 添加新数据
ws.append(['Charlie', 28, 'Chicago'])# 保存工作簿
wb.save("example.xlsx")
7. 表格数据删除

删除表格中的数据。

python"># 加载工作簿
wb = load_workbook("example.xlsx")
ws = wb.active# 删除第2行
ws.delete_rows(2)# 保存工作簿
wb.save("example.xlsx")
8. 单元格样式处理

设置单元格的样式,如字体颜色、背景色等。

python">from openpyxl.styles import Font, PatternFill# 加载工作簿
wb = load_workbook("example.xlsx")
ws = wb.active# 设置单元格字体颜色
ws['A1'].font = Font(color="FF0000")# 设置单元格背景色
ws['A1'].fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")# 保存工作簿
wb.save("example.xlsx")
9. 合并单元格读取

读取合并单元格的数据。

python"># 加载工作簿
wb = load_workbook("example.xlsx")
ws = wb.active# 合并单元格
ws.merge_cells('A1:C1')# 读取合并单元格的数据
merged_cell = ws.cell(row=1, column=1)
print(merged_cell.value)
10. 示例:完整的 Excel 文件读写与更新

下面是一个完整的示例,演示如何读取 Excel 文件、更新数据并重新写入文件:

python">from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, PatternFill# 创建新的 Excel 文件
wb = Workbook()
ws = wb.active
ws.title = "Sheet1"# 添加数据
ws['A1'] = 'Name'
ws['B1'] = 'Age'
ws['C1'] = 'City'
ws.append(['Alice', 30, 'New York'])
ws.append(['Bob', 25, 'Los Angeles'])# 保存工作簿
wb.save("example.xlsx")# 加载已有的工作簿
wb = load_workbook("example.xlsx")
ws = wb.active# 更新数据
ws['B2'] = 31
ws.append(['Charlie', 28, 'Chicago'])# 删除数据
ws.delete_rows(2)# 设置单元格样式
ws['A1'].font = Font(color="FF0000")
ws['A1'].fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")# 合并单元格
ws.merge_cells('A1:C1')# 保存工作簿
wb.save("example.xlsx")# 遍历数据
for row in ws.iter_rows(values_only=True):print(row)
11. 总结

本文详细介绍了如何使用 Python 进行 Excel 文件的创建、遍历、更新、删除以及样式处理等操作。通过 openpyxl 库,可以轻松地读写 Excel 文件,并对其进行各种操作。掌握这些基本操作对于处理各种数据存储和分析任务非常重要。

通过上述示例和步骤,您可以熟练地使用 Python 来管理和操作 Excel 文件,从而提高数据处理的效率和灵活性。无论是进行简单的数据读写还是复杂的文件操作,Python 都能提供强大的支持。


http://www.ppmy.cn/news/1520534.html

相关文章

【计算机网络】socket编程 --- 实现简易TCP网络程序

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 如果文章对…

【Pytorch实用教程】tqdm的作用:在循环中显示进度条

tqdm 是一个 Python 库,用于在循环中显示进度条。它能够为任何可迭代对象(例如列表、生成器、数据加载器等)添加一个可视化的进度条,使用户可以实时查看程序的执行进度。 在数据科学和机器学习领域,tqdm 经常用于显示训练和验证过程中的进度。例如,在训练神经网络时,由…

编译 ffmpeg 以支持AVS格式视频解码与解码

前言 当前文章介绍如何在Linux下使用FFmpeg转码其他视频格式到AVS格式的指南,包括编译FFmpeg以支持XAVS编码和如何使用FFmpeg进行转码。 AVS (Audio Video Coding Standard) 格式是一种由中国主导制定的视频编码标准,全称为“中国数字音视频编解码技术…

装饰器模式及应用【理论+代码】

装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许向一个现有的对象添加新的功能,同时又不改变其结构。这种设计模式通过创建一个包装对象,即装饰器,来封装实际对象。 装饰器模式的主要组成&#…

图像处理之透视变换

透视变换 什么是透视变换透视变换有什么用 什么是透视变换 透视变换(把斜的图变正,也就是一种坐标系到另外一种坐标系)是一种图像处理技术,它利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面&#…

python读取excel数据

在处理Excel数据时,Python 提供了多种强大的库来读取、处理以及分析这些数据。最常用的库之一是 pandas,它建立在 numpy、matplotlib 和 scipy 等库之上,为数据分析和操作提供了高级的、易于使用的数据结构和数据分析工具。另一个流行的库是 …

Java设计模式—策略模式(Strategy)

模式动机 完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。在软件开发中也常常遇到类似的情况,实现某一个功能有多个途径,此时可以使用…

【运维监控】prometheus+node exporter+grafana 监控linux机器运行情况(2)

本示例是通过prometheus的node exporter收集主机的信息,然后在grafana的dashborad进行展示。本示例使用到的组件均是最新的,下文中会有具体版本说明,linux环境是centos。本示例分为四个部分,即prometheus、grafana、node exporter…

【MySQL】如何优化 SQL UPDATE 语句以提升性能

如何优化 SQL UPDATE 语句以提升性能 在日常开发中,优化 SQL 查询是非常关键的一项任务,尤其是在处理大量数据时。本文将通过一个 UPDATE 语句的优化过程,探讨如何提升 SQL 性能。 示例场景 假设我们有以下两张表: 表 table_a…

打造一流的研发型企业--- 金发科技研发驱动力初探

2006年3月29日,国家发改委副主任欧新黔亲自为金发科技颁发了“中国改性塑料行业第一位”、“中国合成材料制造业十强”、“中国石油化工全行业百强”三块铜牌证书,金发科技终于成为名符其实的行业“老大”。公司产品销售额增长迅速, 2006年完…

开发基础软件安装地址(持续更新中)

开发基础软件安装地址(持续更新中) 如果需要新增下载工具可以在评论中留言 欢迎广大开发人员在评论区讨论关于环境安装遇到的问题 正文会持续更新。。。 java常用的jdk1.8版本安装包 链接:jdk-8u421-windows-x64.exe idea java常用的开发工具…

提交保存,要做重复请求拦截,避免出现重复保存的问题

**问题:**前端ajax提交数据的时候,当频繁点击的时候,或者两个账号以相同数据创建的时候,会出现问题。 **处理办法:**前端拦截,防止重复提交数据,在上一次请求返回结果之后才允许提交第二次&…

在 Debian 8 上安装 Nginx 的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 介绍 Nginx 是一个流行的 HTTP 服务器,是 Apache2 的一个替代品。它可以用作反向代理、邮件服务器或 Web 服务器。根据 Net…

[某度信息流]SQL164,2021年11月每天新用户的次日留存率

牛客网在线编程 思路: 首先找出用户的注册日期,即date(min(in_time)) 转成date形式 建立两个辅助表,我先放代码,然后进行解释 withuser_reg as (selectuid,date(min(in_time)) as first_datefromtb_user_loggroup by1),…

抖音视频如何下载保存到相册:详细教程

随着抖音的风靡,越来越多的人沉浸在短视频的世界中,观看各种搞笑、有趣、甚至感人的视频。很多用户都希望能够将喜欢的抖音视频保存到自己的手机相册中,方便随时观看或分享给朋友。本文将详细介绍如何下载抖音视频并保存到相册的方法。 一、…

记录Jmeter 通过view result tree配置保存响应信息的方法以及命令行运行时的一个坑

大家在使用Jmeter进行调试时有没有考虑过这个问题,如何查看具体的响应信息,特别是通过命令行执行脚本的时候,如何看到具体请求的响应信息呢? 看到上面这个问题,首先想到的就是我们平时在jmeter中debug问题&#xff0c…

基于FPGA实现SD NAND FLASH的SPI协议读写

基于FPGA(现场可编程门阵列)实现SD NAND FLASH的SPI(串行外设接口)协议读写是一个涉及硬件设计与编程的复杂过程。以下将详细介绍该过程的背景、关键步骤、电路设计、SPI协议详解、FPGA实现以及代码示例等方面,内容不少…

Spark-ShuffleManager

一、上下文 《Spark-Task启动流程》中我们讲到了ShuffleMapTask中会对这个Stage的结果进行磁盘的写入,并且从SparkEnv中得到了ShuffleManager,且调用了它的getWriter方法并在这个Stage的入口处(也就是RDD的迭代器数据源处)调用了…

uniapp 自定义微信小程序 tabBar 导航栏

背景 做了一个校园招聘类小程序,使用 uniapp vue3 uview-plus pinia 构建,这个小程序要实现多角色登录,根据权限动态切换 tab 栏文字、图标。 使用pages.json中配置tabBar无法根据角色动态配置 tabBar,因此自定义tabBar&…

MySQL数据库增删查改(基础)CRUD

CRUD 即增加 (Create) 、查询 (Retrieve) 、更新 (Update) 、删除 (Delete) 四个单词的首字母缩写。 1. 新增(Create) 1.1单行数据(全列插入) 比如说:创建一张学生表,有姓名,学号。插入两个学…