文章 Python编程

Python读取Excel文件

在工作生活中,我们经常会接触各种Excel表格,有时需要对Excel数据进行处理,人工对大批量数据的重复操作费时又费力,所以不妨试试用Python帮你自动化完成重复的工作。

Python读取Excel文件使用的第三方模块有很多,常见的有:

xlrd,读取Excel数据,兼容性好,支持 .xls 及 .xlsx ,如果想要写入/修改Excel,需要配合使用 xlwt

xlwings,支持 .xls 读取以及 .xlsx 读写

openpyxl,仅支持 Excel 2010 之后的文件类型,支持读写 .xlsx ,功能强大,缺点是不支持 .xls

win32com,是 pywin32 中的模块,支持 .xls 及 .xlsx 文件的读写

pandas,非常强大的一个库,常用作数据分析,支持 .xls 及 .xlsx文件的读写

进入正题,openpyxl 由于其强大的功能,因此有很多开发人员使用这个第三方库,下面就来看一下 openpyxl 如何读取Excel文件吧!

前提条件
1、安装好 python 环境(本文版本3.10.7)

2、安装 openpyxl 模块,pip install openpyxl

读取Excel
一个Excel文件打开后叫工作薄 workbook ,每个工作薄可以有多张表 worksheet ,每张表有行 row 和列 column ,行列交汇的格子叫单元格 cell。

导入模块

from openpyxl import *

打开文件

wb = load_workbook("文件.xlsx")

获取所有工作表名称

sheet_names = wb.sheetnames

得到工作表对象

ws = wb["工作表名称"]

得到行对象

row = ws[2],表示第2行

得到列对象

col = ws['B'],表示第2列

得到单元格对象

cell = ws["B2"]

cell = ws.cell(row=2, column=2)

得到指定区域对象

area = ws[2:5],第2行到第5行的区域

area = ws['C:D'],第C列到第D列的区域

area = ws['A1:C3'],左上角A1到右下角C3的区域

单元格 cell 属性

获取最大行和最大列

ws.max_row 和 ws.max_column

简单示例代码:

# 导入模块
from openpyxl import *

def read_excel_file(filename):
 # 打开xlsx,得到workbook对象
 wb = load_workbook(filename)
 # 获取所有sheet名
 sheet_names = wb.sheetnames
 for name in sheet_names:
  # 得到worksheet对象
  ws = wb[name]
  # 循环每一行
  for i in range(ws.max_row):
   # for j in range(ws.max_column):
   # 每一行的第二列
   cell = ws.cell(row=i+1, column=2)
   print(cell.value)

read_excel_file("1.xlsx")
由俺老刘发布,转载,请注明出自:https://www.anlaoliu.com
0 评论 1405 阅读