经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python3 » 查看文章
使用openpyxl库读取Excel文件数据
来源:cnblogs  作者:qwerrt9  时间:2023/11/6 9:11:49  对本文有异议

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

1. 导入所需库

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

  1. from openpyxl import load_workbook

2. 加载工作簿

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

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

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

3. 获取指定工作表

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

  1. sheet_name = "Sheet1"
  2. sheet = workbook[sheet_name]

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

4. 遍历行和列

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

4.1 遍历行

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

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

4.2 遍历列

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

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

4.3 遍历所有行和列

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

  1. # 遍历所有行
  2. for row in sheet.rows:
  3. for cell in row:
  4. print(cell.value)
  5. # 遍历所有列
  6. for col in sheet.columns:
  7. for cell in col:
  8. print(cell.value)

4.4 获取所有单元格的值

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

  1. # 获取所有行的值
  2. for row in sheet.iter_rows(values_only=True):
  3. for cell_value in row:
  4. print(cell_value)
  5. # 获取所有列的值
  6. for col in sheet.iter_cols(values_only=True):
  7. for cell_value in col:
  8. print(cell_value)

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

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

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

总结

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

完整代码:

  1. from openpyxl import load_workbook
  2. # 加载工作簿
  3. workbook = load_workbook(filename=r'C:\Users\liuchunlin2\Desktop\新建文件夹\新建 XLSX 工作表.xlsx')
  4. # 指定要获取数据的工作表名称
  5. sheet_name = "Sheet1"
  6.  
  7. # 获取指定名称的工作表
  8. sheet = workbook[sheet_name]
  9. # 使用 iter_rows() 方法获取指定范围内的一系列行,并遍历每行中的每个单元格
  10. for row in sheet.iter_rows(min_row=1, max_row=1, min_col=1, max_col=1):
  11. for cell in row:
  12. print(cell.value)
  13. # 使用 iter_cols() 方法获取指定范围内的一系列列,并遍历每列中的每个单元格
  14. for col in sheet.iter_cols(min_row=1, max_row=1, min_col=1, max_col=1):
  15. for cell in col:
  16. print(cell.value)
  17. # rows 属性返回工作表中所有行的列表
  18. for row in sheet.rows:
  19. for cell in row:
  20. print(cell.value)
  21. # columns 属性返回工作表中所有列的列表
  22. for col in sheet.columns:
  23. for cell in col:
  24. print(cell.value)
  25. # 使用 iter_rows() 方法获取工作表中的所有行并返回每个单元格的值,values_only=True 参数可以跳过单元格的格式信息
  26. for row in sheet.iter_rows(values_only=True):
  27. for cell_value in row:
  28. print(cell_value)
  29. # 使用 iter_cols() 方法获取工作表中的所有列并返回每个单元格的值,values_only=True 参数可以跳过单元格的格式信息
  30. for col in sheet.iter_cols(values_only=True):
  31. for cell_value in col:
  32. print(cell_value)
  33. # 使用切片来获取指定范围内的单元格区域,并使用嵌套循环来遍历该区域内的每个单元格
  34. for row in sheet['A1:E8']:
  35. for cell in row:
  36. print(cell.value)

 

原文链接:https://www.cnblogs.com/lcl-cn/p/17810586.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号