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文件,你还需要安装openpyxl
或xlrd
库:
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_font
cell.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 = border
cell.fill = fill
# 保存工作簿
wb.save('formatted_data.xlsx')
以上代码首先使用pandas库创建一个包含姓名、年龄和城市的DataFrame,并将其保存为一个名为’formatted_data.xlsx’的Excel文件。然后,代码加载该Excel文件并使用openpyxl库进行样式设置,包括将标题行设置为粗体和居中,为数据区域添加边框,并为数据区域填充颜色。最后,代码保存修改后的工作簿到相同的Excel文件中。
十、总结 📚
通过本文的实战演练,我们学习了如何使用openpyxl
和pandas
两个Python库来读写xlsx文件。openpyxl
适合对Excel文件进行低级别的操作,如创建、修改和提取工作簿、工作表和单元格等。而pandas
则提供了更高级别的数据处理功能,如读取数据、数据分析和写入数据等。在实际应用中,我们可以根据具体需求选择合适的库来处理xlsx文件。
十一、最后 🤝
亲爱的读者,感谢您每一次停留和阅读,这是对我们最大的支持和鼓励!🙏在茫茫网海中,您的关注让我们深感荣幸。您的独到见解和建议,如明灯照亮我们前行的道路。🌟若在阅读中有所收获,一个赞或收藏,对我们意义重大。
我们承诺,会不断自我挑战,为您呈现更精彩的内容。📚有任何疑问或建议,欢迎在评论区畅所欲言,我们时刻倾听。💬让我们携手在知识的海洋中航行,共同成长,共创辉煌!🌱🌳感谢您的厚爱与支持,期待与您共同书写精彩篇章!
您的点赞👍、收藏🌟、评论💬和关注💖,是我们前行的最大动力!
🎉 感谢阅读,祝你编程愉快! 🎉