Python数据读取——excel文件的读取
本文对excel的读取仅适用于后缀名字为xlsx的excel文件
1、包的导入
安装openpyxl包
可以使用pip安装,也可以在setting中安装
import openpyxl
2、获取工作簿对象
即获取对应的xlsx文件
# 获取工作簿对象
workbook = openpyxl.load_workbook("2015.xlsx")
3、获取工作簿中的工作表名字

# 获取工作簿中所有工作表名字
sheet_names = workbook.sheetnames
print(sheet_names)
输出为[‘Sheet1’]
4、获取工作表对象
并不是获取工作表中的数据
4.1 根据已知工作表名字获取
worksheet=workbook["Sheet1"]
print(worksheet) #<Worksheet "Sheet1">
只适用于已知工作表名字的情况
4.2 根据3中获得的数据表名字数组进行获取
# 可以根据工作表的名字获得工作表对象
worksheet = workbook[sheet_names[0]]
print(worksheet) # 输出:<Worksheet "Sheet1">
4.3 根据索引方式获取工作表对象
# 通过索引方式获取表对象
worksheet=workbook.worksheets[0]
print(worksheet) # <Worksheet "Sheet1">
#也可以用如下方式
#获取当前活跃的worksheet,默认就是第一个worksheet
ws = workbook.active
5、获得工作表属性
得到工作表对象后,可以获取工作表的相应属性,包括“表名”、“行数”、“列数”
# 获取表名
name = worksheet.title
print(name) # 输出:Sheet1
# 获取该表相应的行数和列数
rows = worksheet.max_row
columns = worksheet.max_column
print(rows, columns)
6、按行或者按列读取表中数据
6.1 获取全部数据
需要使用到以下两个生成器:
sheet.rows,这是一个生成器,里面是每一行数据,每一行数据由一个元组类型包裹。
sheet.columns,同上,里面是每一列数据。
# 按行读取
for row in worksheet.rows:
for cell in row:
print(cell.value, end=" ")
print()
# row 的格式是(<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>)
# 所以还要进一层读取cell,cell 的格式为<Cell 'Sheet1'.A1>
# 所以还要读取cell的值
# 按列读取
for col in worksheet.columns:
for cell in col:
print(cell.value,end=" ")
print()
6.2 获取特定行或者特定列的数据
sheet.rows是生成器类型,不能使用索引。所以将其转换为list之后再使用索引,例如用list(sheet.rows)[3]来获取第四行的tuple对象。
# 输出特定的行
for cell in list(worksheet.rows)[3]: #获取第四行的数据
print(cell.value,end=" ")
print()
#输出特定的列
for cell in list(worksheet.columns)[2]: #获取第三列的数据
print(cell.value,end=" ")
print()
已经转换成list类型,所以下标是从0开始
6.3 获取某一块的数据
6.3.1 第一种方式
将生成器转换成列表的形式,切片获得数据
注意下标是从0开始
# list(worksheet.rows)[0:3]获取的是从第0行开始的第2行的共三行数据,列同样
for rows in list(worksheet.rows)[0:3]:
for cell in rows[0:3]:
print(cell.value,end=" ")
print()
6.3.2 第二种方式
第二种方式,通过range方式,行和列都是从1开始
# 这里获得的是从第1行到第3行,列只有第一列
for i in range(1, 4):
for j in range(1, 2):
print(worksheet.cell(row=i, column=j).value,end=" ")
print()
7、获取某一单元格的数据
两种方式,一种是通过索引,一种是通过行号和列号
# 精确读取表格中的某一单元格
# 此处的行数和列数都是从1开始计数的
content_A1 = worksheet['A1'].value
print(content_A1)
content_A1 = worksheet.cell(row=1, column=1).value
# 等同于 content_A1=worksheet.cell(1,1).value
print(content_A1)
本文介绍如何使用Python的openpyxl库读取.xlsx格式的Excel文件。涵盖了获取工作簿、工作表,读取数据及单元格内容的方法。
497

被折叠的 条评论
为什么被折叠?



