python导⼊openpyxl模块_Python读取Excel⽤例——openpyxl
模块
openpyxl是第三⽅库,专门处理Excel2007及以上版本产⽣的xlsx⽂件
python怎么读入excelPython官⽅库⼀般使⽤xlrd库来读取Excel⽂件,使⽤xlwt库来⽣成Excel⽂件,使⽤xlutils库复制和修改Excel⽂件,这三个库只⽀持到Excel2003。
openpyxl中有三个不同层次的类,Workbook是对⼯作簿的抽象,Worksheet是对表格的抽象,Cell是对单元格的抽象,每⼀个类都包含了许多属性和⽅法。
⼀、Excel基本操作:
(1)打开⼀个Excel
from openpyxl import load_workbook
wb = load_workbook("⽂件名称.xlsx")
(2)获取sheetname
sheet_name = wb["sheet名称"]
(3)获取单元格数据
ll(i,j).value #第i⾏ 第j列
⼆、实际接⼝⽤例操作
from openpyxl import load_workbook
class TestExcel:
def __init__(self,filepath): # 初始化,定义打开⽂件名称参数化
self.filepath = filepath
self.wb = load_workbook(self.filepath)
# 获取sheet下的所有数据
def get_TestExcel(self,sheetname):
sheet = self.wb[sheetname] # 打开sheet
test_data = [] # 把所有⾏的数据放⼊列表中
for i in range(2,sheet.max_row + 1): # sheet.max_row 获取最⼤⾏
sub_data = {} # 把每⾏的数据放到字典中
for j in range(1,sheet.max_column+ 1): # sheet.max_column 获取最⼤列
sub_ll(1,j).value] = ll(i,j).value
test_data.append(sub_data) # 拼接每⾏单元格的数据
return test_data
# 获取指定⾏的数据
def get_TestExcel_row(self,sheetname,row_s,row_e):
sheet = self.wb[sheetname]
test_data = []
if row_s >= 2 and row_e <= sheet.max_row+1:
for i in range(row_s,row_e+1):
sub_data = {}
for j in range(1,sheet.max_column+1):
sub_ll(1,j).value] = ll(i,j).value
test_data.append(sub_data)
return test_data
# 将返回结果写⼊Excel
def write_back(self,sheetname,case_id,actual,result,sql="/"):
sheet = self.wb[sheetname]
for i in range(2,sheet.max_row+1):
id = ll(i,1).value
if id == case_id:
break
try:
self.wb.save(self.filepath)
except Exception as e:
print("写⼊后保存失败".format(self.filepath))
raise e
if __name__ == "__main__":
# t = TestExcel("接⼝⽤例.xlsx").get_TestExcel("⼯作簿1")
t = TestExcel("接⼝⽤例.xlsx").get_TestExcel_row("⼯作簿1",row_s=2,row_e=3) print(t)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论