本次学习资料均来自datawhale
https://github.com/datawhalechina/team-learning-program/blob/master/OfficeAutomation
import pandas as pd
import numpy as np
from openpyxl import load_workbook
exl = load_workbook("test.xlsx")
print(exl.sheetnames) # 获得表格的所有sheet名
['work', 'Sheet2']
1、Excel读取
1.1 读取对应sheet表格
### 原test表有2个及以上的sheet,将excel读进python后,可以通过指定key值的方式获取表格
# 比如获得work这张sheet内的内容
sheet = exl["work"]
# 比如获得Sheet2这张sheet表的内容
sheet = exl['Sheet2']
### 原test表只有1个sheet,也有一个简便方式获得sheet表内容,而不需要知道sheet表的名称
sheet = exl.active
#### 注意,如果excel表有多个sheet,用这样方式只能获得第一个sheet表的内容。
sheet = exl["Sheet2"]
# 只有一张表
sheet = exl.active
sheet
<Worksheet "Sheet2">
# sheet表内数据占据的单元格范围
# 数据没有空格
sheet = exl['work']
print(sheet.dimensions)
A1:B51104
# 数据中间有空白单元格
sheet = exl['Sheet2']
print(sheet.dimensions)
A1:D5
结果显示,不考虑中间的空白单元格,只显示能框选所有数据的单元格范围
1.2 读取单元格
1.2.1 获取某个单元格的具体内容
# 方法1:指定行列数
exl = load_workbook("test.xlsx")
sheet = exl["work"]
cell = sheet.cell(row=1,column=2) # 指定行列数
print(cell.value)
人流数
# 方法2:字母+数字的表示方式指定单元格位置
cell_1 = sheet["B1"] # 单元格
print(cell_1.value)
人流数
1.2.2 获取单元格对应的行、列和坐标
print(cell_1.row,cell_1.column,cell_1,cell.coordinate)
1 B <Cell 'work'.B1> A1
1.3 读取多个格子的值
1.3.1 指定坐标范围
cell = sheet["A1:B5"] # A1到B5区域的值
1.3.2 指定行的值
row = sheet[1] # 第一行的值
rows = sheet[1:5] # 第1到第5行的值
1.3.3 指定列的值
col = sheet["A"] # A列的值
cols = sheet["A:C"] # A列到C列的值
1.3.4 指定范围的值
行获取
for row in sheet.iter_rows(min_row=1,max_row=5):
print(row)
for cell in row:
print(cell.value)
(<Cell 'work'.A1>, <Cell 'work'.B1>)
时间点
人流数
(<Cell 'work'.A2>, <Cell 'work'.B2>)
2020-09-01
63306.166000000005
(<Cell 'work'.A3>, <Cell 'work'.B3>)
2020-09-01
40535.964
(<Cell 'work'.A4>, <Cell 'work'.B4>)
2020-09-01
30026.64
(<Cell 'work'.A5>, <Cell 'work'.B5>)
2020-09-01
46291.07
列获取
for col in sheet.iter_cols(min_row=1,max_row=5,min_col=1,max_col=2)