- 基本概念
- openpyxl的使用
- 安装与导入
- openpyxl的基本操作
- 创建excel的操作类
基本概念使用openpyxl读取excel文件
- workbook 相当于一个 Excel 文件档,每个被创建和打开的 Excel 文件都是独立的 Workbook 对象,简单的说就是一个excel文件
- sheet Excel 文档中的表单,每个 Excel 文档至少需要一个 sheet,每个excel文件可以创建多个sheet页,打开excel看左下角,默认是 Sheet 1
- cell 单元格,是不可分割的基本数据存储单元
pip install openpyxl
import openpyxlopenpyxl的基本操作
import openpyxl
def test_excel():
# 获取工作博
book = openpyxl.load_workbook('./test.xlsx')
# 读取当前活跃的工作表
# sheet = book.active
# 读取表名 Sheet1 的工作表
sheet = book["Sheet1"]
# 读取单个单元格
cell_a1 = sheet['A1']
cell_a3 = sheet.cell(column=1, row=3)
# 读取连续单元格
cells = sheet["A1":"C3"]
print("------------")
# 获取单元格的值
for row in cells: # 获取每一行的数据
for cell in row: # 获取每一行中每一个单元格的数据
print(cell.value, end=" ")
print()
print("==========")
# 按行读取
for row in sheet.rows:
print([cell.value for cell in row]) # 列表推导式
print("***********")
data = []
# 读取其中的数据
for row in sheet.rows: # 按行读取
data.append([cell.value for cell in row]) # 列表推导式,并添加到data列表中
print(data)
输出
------------ a1 b1 c1 a2 b2 c2 a3 b3 c3 ========== ['a1', 'b1', 'c1'] ['a2', 'b2', 'c2'] ['a3', 'b3', 'c3'] *********** [['a1', 'b1', 'c1'], ['a2', 'b2', 'c2'], ['a3', 'b3', 'c3']] PASSED创建excel的操作类
import openpyxl
class Excel():
"""
实现对excel的操作类
"""
@classmethod
def read(cls, workbook_name='./test.xlsx', sheet_name='Sheet1'):
"""
对excel进行读取操作
:param workbook_name: excel工作簿的名字,包含所在的路径如'./test.xlsx'
:param sheet_name:需要读取的sheet表名
:return:返回每一行读取数据的列表,如[[1,2,3],[4,5,6]]
"""
workbook = openpyxl.load_workbook(workbook_name) # 打开工作簿
sheet = workbook[sheet_name] # 打开sheet表
data = [] # 创建空列表,用于存储需要返回的数据
for row in sheet.rows: # 按行读取数据
data.append([cell.value for cell in row]) # 列表推导式,将每一行的数据,并将每一行的数据加到data中
return data
if __name__ == '__main__':
print(Excel.read('../test/test.xlsx', 'Sheet1'))



