Python实战:xlsx文件的读写

Python实战:xlsx文件的读写

在这里插入图片描述

🌈 个人主页:高斯小哥
🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您的订阅和支持~
💡 创作高质量博文,分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)


🌵文章目录🌵

  • 一、openpyxl库简介 🔍
  • 二、安装openpyxl 📚
  • 三、使用openpyxl写入xlsx文件 🖋
  • 四、使用openpyxl读取xlsx文件 📑
  • 五、pandas库简介 🔍
  • 六、安装pandas 📚
  • 七、使用pandas写入xlsx文件 🖋
  • 八、使用pandas读取xlsx文件 📑
  • 九、实战演练 🚀
    • 示例1:写入多个工作表到同一个xlsx文件
    • 示例2:写入带有格式的数据到xlsx文件
  • 十、总结 📚
  • 十一、最后 🤝

  在数据分析和处理的日常工作中,Excel文件(.xlsx格式)📑🔍无疑是我们经常需要与之打交道的一种文件格式。Python🐍提供了多种库来读写xlsx文件,其中最受欢迎的是openpyxl📚和pandas🐼。本文将通过实战的方式💪🔥,带你深入了解如何使用Python来读写xlsx文件📄🖊️,让你在数据处理中更加游刃有余!🚀✨

一、openpyxl库简介 🔍

  openpyxl是一个强大的Python库,用于🔄读写Excel电子表格文件!它允许你通过Python程序轻松处理电子表格文件,包括📝创建、🖌️修改、🔍分析和🔄转换等操作。💪

  不仅如此,openpyxl还支持Excel的多种格式,如📁xlsx、xlsm、xltx和xltm,让你可以轻松处理大量数据和复杂的电子表格。💡

二、安装openpyxl 📚

在使用openpyxl之前,你需要先安装它。可以通过pip来安装:

pip install openpyxl

三、使用openpyxl写入xlsx文件 🖋

下面是一个使用openpyxl创建并写入xlsx文件的简单示例:

from openpyxl import Workbook# 创建工作簿
workbook = Workbook()# 选择默认的工作表
sheet = workbook.active# 写入单元格数据
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'# 保存工作簿
workbook.save(filename='example.xlsx')

  以上代码使用openpyxl库创建一个新的Excel工作簿,并在其默认的工作表中写入“Hello”到A1单元格和“World”到B1单元格,然后将该工作簿保存为名为“example.xlsx”的文件。

四、使用openpyxl读取xlsx文件 📑

下面是一个使用openpyxl读取xlsx文件的简单示例:

from openpyxl import load_workbook# 加载工作簿
workbook = load_workbook(filename='example.xlsx')# 选择工作表
sheet = workbook['Sheet']# 读取单元格内容
cell_value = sheet['A1'].value
print(f"A1单元格的值是:{cell_value}")# 读取整行数据
row_values = [cell.value for cell in sheet['A']]
print(f"A行的值是:{row_values}")# 读取整列数据
column_values = [cell.value for cell in sheet[1]]
print(f"第1列的值是:{column_values}")# 读取整个工作表数据
for row in sheet.iter_rows(min_row=1, max_col=5, values_only=True):print(row)

  以上代码使用openpyxl库来加载一个名为example.xlsx的Excel工作簿,并从中读取数据。代码首先选择了一个名为Sheet的工作表,然后分别读取了单元格A1的值、整行A的数据、整列第1列的数据,以及通过迭代行的方式读取了前5列的数据,并打印出了这些数据。

五、pandas库简介 🔍

  pandas是一个强大的数据分析库,它提供了DataFrame这一数据结构,使得数据处理变得非常方便。同时,pandas也提供了读写Excel文件的功能。

六、安装pandas 📚

在使用pandas之前,你需要先安装它。可以通过pip来安装:

pip install pandas

同时,为了读写xlsx文件,你还需要安装openpyxlxlrd库:

pip install openpyxl xlrd

七、使用pandas写入xlsx文件 🖋

下面是一个使用pandas创建并写入xlsx文件的简单示例:

import pandas as pd# 创建数据
data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['New York', 'London', 'Paris']
}# 创建DataFrame
df = pd.DataFrame(data)# 写入xlsx文件
df.to_excel('example.xlsx', index=False)

  以上代码使用Python的pandas库创建一个包含姓名、年龄和城市的简单数据集,并将这个数据集保存为一个名为’example.xlsx’的Excel文件。在这个Excel文件中,数据以表格的形式呈现,没有包含任何索引。

八、使用pandas读取xlsx文件 📑

下面是一个使用pandas读取xlsx文件的简单示例:

import pandas as pd# 读取xlsx文件
data = pd.read_excel('example.xlsx', sheet_name='Sheet1')# 显示数据
print(data)

输出:

      Name  Age      City
0    Alice   25  New York
1      Bob   30    London
2  Charlie   35     Paris进程已结束,退出代码0

九、实战演练 🚀

示例1:写入多个工作表到同一个xlsx文件

import pandas as pd# 创建数据
data1 = {'Name': ['Alice', 'Bob'],'Age': [25, 30]
}data2 = {'Product': ['Apple', 'Banana'],'Price': [0.99, 0.59]
}# 创建DataFrame
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)# 使用ExcelWriter写入多个工作表
with pd.ExcelWriter('multiple_sheets.xlsx') as writer:df1.to_excel(writer, sheet_name='Sheet1')df2.to_excel(writer, sheet_name='Sheet2')# 注释:
# 使用pd.ExcelWriter上下文管理器,可以将多个DataFrame写入同一个xlsx文件的不同工作表中。
# to_excel方法的sheet_name参数指定了工作表的名称。

  以上代码使用Python的pandas库创建两个数据字典(data1和data2),分别代表两个人的信息(姓名和年龄)以及两种产品的信息(产品和价格)。接着,这些数据字典被转换为两个pandas DataFrame对象(df1和df2)。最后,利用pandas的ExcelWriter功能,这两个DataFrame对象被写入同一个Excel文件(multiple_sheets.xlsx)的不同工作表(Sheet1和Sheet2)中。这样,一个Excel文件就包含了两个相关的数据集,方便后续的数据分析和处理。

示例2:写入带有格式的数据到xlsx文件

import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, Border, Side, PatternFill# 创建数据
data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['New York', 'London', 'Paris']
}# 创建DataFrame
df = pd.DataFrame(data)# 使用pandas写入xlsx文件
with pd.ExcelWriter('formatted_data.xlsx', engine='openpyxl') as writer:df.to_excel(writer, index=False, sheet_name='Sheet1')# 加载已存在的Excel文件并获取工作表
wb = Workbook()
ws = wb.active
ws.title = 'Sheet1'# 将pandas写入的数据复制到openpyxl工作簿中
for r_idx, row in df.iterrows():for c_idx, value in enumerate(row, start=1):ws.cell(row=r_idx + 1, column=c_idx, value=value)# 设置标题行的字体样式
title_font = Font(bold=True, size=14)
for cell in ws[1]:  # 假设标题在第一行cell.font = title_fontcell.alignment = Alignment(horizontal='center')# 设置数据区域的边框和填充样式
border = Border(left=Side(style='thin'), right=Side(style='thin'),top=Side(style='thin'), bottom=Side(style='thin'))
fill = PatternFill(start_color='FFFFCC', end_color='FFFFCC', fill_type='solid')
for row in ws.iter_rows(min_row=2, max_row=df.shape[0] + 1, min_col=1, max_col=df.shape[1], values_only=False):for cell in row:cell.border = bordercell.fill = fill# 保存工作簿
wb.save('formatted_data.xlsx')

  以上代码首先使用pandas库创建一个包含姓名、年龄和城市的DataFrame,并将其保存为一个名为’formatted_data.xlsx’的Excel文件。然后,代码加载该Excel文件并使用openpyxl库进行样式设置,包括将标题行设置为粗体和居中,为数据区域添加边框,并为数据区域填充颜色。最后,代码保存修改后的工作簿到相同的Excel文件中。

十、总结 📚

  通过本文的实战演练,我们学习了如何使用openpyxlpandas两个Python库来读写xlsx文件。openpyxl适合对Excel文件进行低级别的操作,如创建、修改和提取工作簿、工作表和单元格等。而pandas则提供了更高级别的数据处理功能,如读取数据、数据分析和写入数据等。在实际应用中,我们可以根据具体需求选择合适的库来处理xlsx文件。


十一、最后 🤝

  亲爱的读者,感谢您每一次停留和阅读,这是对我们最大的支持和鼓励!🙏在茫茫网海中,您的关注让我们深感荣幸。您的独到见解和建议,如明灯照亮我们前行的道路。🌟若在阅读中有所收获,一个赞或收藏,对我们意义重大。

  我们承诺,会不断自我挑战,为您呈现更精彩的内容。📚有任何疑问或建议,欢迎在评论区畅所欲言,我们时刻倾听。💬让我们携手在知识的海洋中航行,共同成长,共创辉煌!🌱🌳感谢您的厚爱与支持,期待与您共同书写精彩篇章!

  您的点赞👍、收藏🌟、评论💬和关注💖,是我们前行的最大动力!

  🎉 感谢阅读,祝你编程愉快! 🎉

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

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

相关文章

图像压缩感知的MATLAB实现(OMP)

前面实现了 压缩感知的图像仿真(MATLAB源代码) 效果还不错,缺点是速度慢如牛。 下面我们采用OMP对其进行优化,提升速度。具体代码如下: 仿真 构建了一个MATLAB文件,所有代码都在一个源文件里面&#xf…

Unet 高阶分割网络实战、多类别分割、迁移学习(deeplab、resnet101等等)

1、前言 Unet 图像分割之前介绍了不少,具体可以参考 图像分割专栏 为了实现多类别的自适应分割,前段时间利用numpy的unique函数实现了一个项目。通过numpy函数将mask的灰度值提取出来,保存在txt文本里,这样txt里面就会有类似0 1…

力扣精选100道——外观数列(模拟专题)

外观数列算法题链接 🚩了解题意 该题的下面充分的给你说明了这个题目的意思。 3 3 2 2 2 5 1 我们根据我们正常读的顺序读 俩个3 三个2 一个5 一个1 连起来就是 2 3 3 2 1 5 1 这就是最终输出的字符串。 题目开头说了,我们最初是 1开始读…

板块一 Servlet编程:第五节 Cookie对象全解 来自【汤米尼克的JAVAEE全套教程专栏】

板块一 Servlet编程:第五节 Cookie对象全解 一、什么是CookieCookie的源码 二、Cookie的具体操作(1)创建Cookie(2)获取Cookie(3)设置Cookie的到期时间(4)设置Cookie的路径…

【ArcGIS】利用高程进行坡度分析:区域面/河道坡度

在ArcGIS中利用高程进行坡度分析 坡度ArcGIS实操案例1:流域面上坡度计算案例2:河道坡度计算2.1 案例数据2.2 操作步骤 参考 坡度 坡度是地表单元陡缓的程度,通常把坡面的垂直高度和水平距离的比值称为坡度。 坡度的表示方法有百分比法、度数…

计算机网络面经-TCP三次握手一文说清

目录 说一下TCP的三次握手? 为什么要三次握手?两次行不行?四次呢? 为什么建立连接是三次握手,关闭连接确是四次挥手呢? TCP四次挥手的过程? 如果已经建立了连接,但是客户端突然出…

TSL四次握手

HTTPS 常用的密钥交换算法有两种,分别是 RSA 和 ECDHE 算法。 其中,RSA 是比较传统的密钥交换算法,它不具备前向安全的性质,因此现在很少服务器使用的。而 ECDHE 算法具有前向安全,所以被广泛使用。 1. ECDHE算法 1.…

PostgreSQL如何使用UUID

离线安装时,一般有四个包,都安装的话,只需要开启uuid的使用即可,如果工具包(即 postgresql11-contrib)没有安装的话,需要单独安装一次,再进行开启。 开启UUID方法 下面介绍一下如何开启&#…

ELK介绍以及搭建

基础环境 hostnamectl set-hostname els01 hostnamectl set-hostname els02 hostnamectl set-hostname els03 hostnamectl set-hostname kbased -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config systemctl stop firewalld & systemctl disable firewalld# 安…

互联设备-中继器-路由器等

网卡的主要作用 1 在发送方 把从计算机系统要发送的数据转换成能在网线上传输的bit 流 。 2 在接收方 把从网线上接收来的 bit 流重组成计算机系统可以 处理的数据 。 3 判断数据是否是发给自己的 4 发送和控制计算机系统和网线数据流 计算机的分类 1、台式机 2、小型机和服…

亿道丨三防平板丨加固平板丨为零售业提供四大优势

随着全球经济的快速发展,作为传统行业的零售业也迎来了绝佳的发展机遇,在互联网智能化的大环境下,越来越多的零售企业选择三防平板电脑作为工作中的电子设备。作为一种耐用的移动选项,三防平板带来的不仅仅是坚固的外壳。坚固耐用…

计算机网络面经-从浏览器地址栏输入 url 到显示主页的过程?

大概的过程比较简单,但是有很多点可以细挖:DNS解析、TCP三次握手、HTTP报文格式、TCP四次挥手等等。 DNS 解析:将域名解析成对应的 IP 地址。TCP连接:与服务器通过三次握手,建立 TCP 连接向服务器发送 HTTP 请求服务器…

模型 KISS复盘法

系列文章 分享 模型,了解更多👉 模型_总纲目录。重在提升认知。反思过去,不断进步。 1 KISS复盘法的应用 1.1 团队项目复盘 在一个团队项目结束后,团队成员可以使用KISS模型进行复盘,以总结经验教训并改进未来的工作…

Web3之光:揭秘数字创新的未来

随着数字化时代的深入发展,Web3正以其独特的技术和理念,为我们打开数字创新的崭新视角。作为数字化时代的新兴力量,Web3将深刻影响着我们的生活、工作和社会。本文将揭秘Web3的奥秘,探讨其在数字创新领域的前景和潜力。 1. 重新定…

HTTP 与 HTTPS-HTTP 解决了 HTTP 哪些问题?

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP 解决了 HTTP 哪些问题? HTTP 由于是明文传输,所以安全上存在以下三个风险: 窃听风险,比如通信链路上可以获取通信内容,用户号容易没。篡改风险,比如…

Spark: a little summary

转眼写spark一年半了,从之前写机器学习组件、做olap到后面做图计算,一直都是用的spark,惭愧的是没太看过里面的源码。这篇文章的目的是总结一下Spark里面比较重要的point,重点部分会稍微看一下源代码,因为spark是跟cli…

(done) 矩阵的对角化,以及是否可对角化的判断、还有对角化的本质。相似对角化计算过程

相似对角化 和 对角化 很大程度上是一回事 甚至判断两个矩阵的相似性,也跟对角化有很大关系 参考视频1:https://www.bilibili.com/video/BV1PA411T7b5/?spm_id_from333.788&vd_source7a1a0bc74158c6993c7355c5490fc600 参考视频2:http…

在 Jupyter Notebook 中查看所使用的 Python 版本和 Python 解释器路径

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 我们在做 Python 开发时,有时在我们的服务器上可能安装了多个 Python 版本。 使用 conda info --envs 可以列出所有的 conda 环境。当在 Linux 服务器上使用 which python 命令时&#xff0…

解决IDEA中Maven下载依赖包过慢或报错的问题

由于公司项目迭代,越来越多的项目开始转型新版本,由于我对Java一直不感冒,但要顺应公司项目要求,遂自己要逐步开始完善Java相关的知识层面,此篇是我在学习SpringBoot时对一些不懂地方及遇到问题时的记录。 学习视频链…

ChatGPT plus 的平替:9个可以联网的免费AI搜索引擎

ChatGPT plus 的平替:9个可以联网的免费AI搜索引擎。 由于ChatGPT 训练数据截止到2021年9月,在该时间点之后发生的事件,ChatGPT均无法给出答复。所以,大家现在都非常期待ChatGPT能够联网,访问实时的信息。 ChatGPT pl…