首页 > 其他分享 >使用openpyxl库读取Excel文件数据

使用openpyxl库读取Excel文件数据

时间:2023-11-05 15:44:05浏览次数:37  
标签:遍历 sheet openpyxl 读取 Excel cell col row

在Python中,我们经常需要读取和处理Excel文件中的数据。openpyxl是一个功能强大的库,可以轻松地实现Excel文件的读写操作。本文将介绍如何使用openpyxl库读取Excel文件中的数据。

1. 导入所需库

首先,我们需要导入openpyxl库,这个库提供了许多用于操作Excel文件的功能。

from openpyxl import load_workbook

2. 加载工作簿

接下来,我们需要加载Excel文件的工作簿。

workbook = load_workbook(filename=r'C:\Users\liuchunlin2\Desktop\新建文件夹\新建 XLSX 工作表.xlsx')

请注意,filename参数需要指定Excel文件的路径。

3. 获取指定工作表

在Excel文件中,可能包含多个工作表。我们需要指定要获取数据的工作表名称。

sheet_name = "Sheet1"
sheet = workbook[sheet_name]

根据指定的工作表名称,我们可以获取到对应的工作表对象。

4. 遍历行和列

接下来,我们可以使用不同的方法遍历工作表中的行和列,并获取每个单元格的值。

4.1 遍历行

我们可以使用iter_rows()方法来获取指定范围内的一系列行,并遍历每行中的每个单元格。

for row in sheet.iter_rows(min_row=1, max_row=1, min_col=1, max_col=1):
    for cell in row:
        print(cell.value)

4.2 遍历列

同样地,我们可以使用iter_cols()方法获取指定范围内的一系列列,并遍历每列中的每个单元格。

for col in sheet.iter_cols(min_row=1, max_row=1, min_col=1, max_col=1):
    for cell in col:
        print(cell.value)

4.3 遍历所有行和列

除了使用上述方法来遍历特定范围内的行和列,我们还可以直接获取工作表中的所有行和列,并遍历每个单元格。

# 遍历所有行
for row in sheet.rows:
    for cell in row:
        print(cell.value)

# 遍历所有列
for col in sheet.columns:
    for cell in col:
        print(cell.value)

4.4 获取所有单元格的值

如果我们只关注单元格中的值,并跳过格式信息,可以使用iter_rows()iter_cols()方法的values_only=True参数来实现。

# 获取所有行的值
for row in sheet.iter_rows(values_only=True):
    for cell_value in row:
        print(cell_value)

# 获取所有列的值
for col in sheet.iter_cols(values_only=True):
    for cell_value in col:
        print(cell_value)

4.5 获取指定范围的单元格区域

如果我们只需要获取特定范围内的单元格区域,可以使用切片来实现。

# 获取指定范围内的单元格区域
for row in sheet['A1:E8']:
    for cell in row:
        print(cell.value)

总结

本文介绍了如何使用openpyxl库读取Excel文件中的数据。通过加载工作簿、获取指定工作表以及遍历行和列,我们可以轻松地读取Excel文件中的数据并进行处理

完整代码:

import pandas as pd
import matplotlib.pyplot as plt

# 设置中文字体为黑体
plt.rcParams['font.family'] = ['SimHei']

# 从Excel文件中读取数据
data = pd.read_excel(r'C:\Users\liuchunlin2\Desktop\新建文件夹\新建 XLSX 工作表.xlsx')

# 按店铺名称聚合销售数量
sales_by_shop = data.groupby('店铺名称')['销售数量'].sum()
# 使用 groupby() 方法按店铺名称聚合销售数量,并计算每个店铺的销售总量,结果保存在 sales_by_shop Series 中

# 绘制圆环图
fig, ax = plt.subplots(figsize=(8, 8))
colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99', '#ffa3a3'] # 设置颜色
wedges, texts, autotexts = ax.pie(sales_by_shop, labels=sales_by_shop.index,
                                  startangle=90, autopct='%.2f%%',
                                  wedgeprops={'width': 0.3}, labeldistance=1.15,
                                  colors=colors)
# 使用 ax.pie() 方法绘制圆环图,其中传递销售数量数据、标签、起始角度、百分比格式、扇形区域宽度、标签距离和颜色等参数,并将返回的三个对象分别保存在 wedges、texts 和 autotexts 变量中。

# 添加标题和图例
ax.set_title('店铺销量占比', size=20)  # 设置标题
ax.legend(wedges, sales_by_shop.index,  # 添加图例
          title="店铺名称",  # 图例标题
          loc="center left",  # 图例位置
          bbox_to_anchor=(1, 0, 0.5, 1),  # 图例框的坐标
          fontsize=14)

# 修改字体大小
plt.setp(texts, size=15)  # 修改标签字体大小
plt.setp(autotexts, size=14)  # 修改百分比字体大小

# 显示图形
plt.show()

 

标签:遍历,sheet,openpyxl,读取,Excel,cell,col,row
From: https://www.cnblogs.com/lcl-cn/p/17810586.html

相关文章

  • SpringBoot项目从resources目录读取文件
    SpringBoot从resources读取文件使用Spring给我们提供的工具类来进行读取Filefile=org.springframework.util.ResourceUtils.getFile("classpath:人物模板.docx");可能读取失败,出现如下错误:java.io.FileNotFoundException:classpathresource[人物模板.docx]cannot......
  • Excel统计某字符或关键字出现的次数
    原始数据区域为A1:A5,每个单元格中包含不同或相同的文本,要根据需求求某个字符或关键字在各单元格文本中出现的次数总和。首先,求“北京”出现的次数(整个单元格内容等于“北京”)。我们输入公式:=COUNTIF(A1:A5,”北京”)结果返回1,因为源数据中只有A1单元格整个文本内容是“北京”。然......
  • EXCEL中怎样将一列内容转成一行
    打开需要处理的EXCEL文档全选需要以行排列的一列内容鼠标右键或ctrl+c复制在一空白行中的单元格内,点击鼠标右键找到并单击选择性粘贴,在弹出的窗体中选择转置完成列转行操作......
  • postman读取不到文件This file isn't in your working directory问题的解决方法
    遇到问题使用postman发起请求时,看到感叹号提示,具体信息如下:Thisfileisn'tinyourworkingdirectory.Teammatesyousharethisrequestwithwon'tbeabletousethisfile.TomakecollaborationeasieryoucansetupyourworkingdirectoryinSettings.解决方法进......
  • 读取xlsm格式的文件,该表格只有一个,但是通过python读取,却显示两个表格?
    大家好,我是皮皮。一、前言前几天在最强王者交流群【wen】问了一个Python处理Excel文件相关的问题,一起来看看吧。请教问题:读取xlsm格式的文件,该表格只有一个名字为"销售明细(2)"的表格,但是通过python读取该文件,却显示两个表格,分别为:“销售明细”和“销售明细(2)”df2=pd.read_exce......
  • # yyds干货盘点 # 读取xlsm格式的文件,该表格只有一个,但是通过python读取,却显示两个表
    大家好,我是皮皮。一、前言前几天在最强王者交流群【wen】问了一个Python处理Excel文件相关的问题,一起来看看吧。请教问题:读取xlsm格式的文件,该表格只有一个名字为"销售明细(2)"的表格,但是通过python读取该文件,却显示两个表格,分别为:“销售明细”和“销售明细(2)”df2=pd.read_excel(‘......
  • Python之openpyxl模块的学习
    简介之前针对Excel的读取都是使用的xlrd模块,但是在一次实践中发现xlrd模块去掉了对xlsx格式的支持,因此改用openpyxl。以下内容仅包含使用openpyxl读取Excel文档的操作,并且比较浅显,更多内容请参考官方文档。注:一个excel就是一个工作簿(workbook),一个工作簿含有多个工作表(sheet)实......
  • 使用Python将多个工作表保存到一个Excel文件中
    使用Python将多个工作表保存到一个Excel文件中excelperfect标签:Python与Excel,pandas本文讲解使用Pythonpandas将多个工作表保存到一个相同的Excel文件中。按照惯例,我们使用df代表数据框架,pd代表pandas。我们仍将使用df.to_excel()方法,但我们需要另一个类pd.ExcelWriter()的......
  • java笔记_15_动态生成Excel文件
    //创建表头数据//内层List按纵向创建,外层List按横向添加,横向重复的名称会自动合并表格。List<List<String>>list=newArrayList<>();List<String>childList1=newArrayList<>();childList1.add("aaa");childList1.add("bbb");childList1.add......
  • 一个无意间,发现解决POI处理非常大的Excel不会内存溢出的方法
    看到一个API用sxssfworkbook来生成Excel堆积图然后在百度的对话工具问了sxssfworkbook和xssfworkbook区别回答是:SXSSFWorkbook和XSSFWorkbook均为ApachePOI库中处理Excel文件的类,但它们有以下区别1:XSSFWorkbook基于OfficeOpenXML格式,适用于Excel2007及更高版本,它使用的......