1 前情提要
之前通过python操作excel表格均是通过xlrd模块完成的,由于xlrd模块最新版本不支持*.xlsx格式的文件,解决改问题有两种方法
方法一:卸载已经安装的最新版本xlrd,安装指定版本pip install xlrd==1.2.0
方法二:使用openpyxl模块代替xlrd,该库支持xlsx格式的excel
demo示例如下:
表格内容:
代码如下
import os from openpyxl import load_workbook from common import getPath class readExcel(): # 初始化操作 def __init__(self, excelName): self.excelName = excelName #获取表格中的数据 def getExcelCell(self): #获取文件路径 excelFile = os.path.join(getPath.testCaseFile, self.excelName) #加载表格 wb = load_workbook(excelFile) #创建空列表将获取到的数据存放到列表中 caseList = [] #获取表格中的表单 for sheetName in wb.sheetnames: sheet = wb[sheetName] #获取每张表中最大行数 maxRow = sheet.max_row #获取每行中需要的数据,并存放到列表中 for i in range(2,maxRow+1): dictData = dict( functionModule = sheet.cell(row=i,column=1).value, caseID = sheet.cell(row=i,column=2).value, caseName = sheet.cell(row=i,column=4).value, url = sheet.cell(row=i,column=5).value, headers = sheet.cell(row=i,column=7).value, data = sheet.cell(row=i,column=8).value, loginType = sheet.cell(row=i,column=9).value ) caseList.append(dictData) return caseList def writeExcel(self): pass if __name__ == '__main__': # print(getPath.testCaseFile) caseFile = readExcel('Case_demo.xlsx') cases = caseFile.getExcelCell() #print(caseFile.getExcelCell()) for case in cases: print(case)