需要安装openpyxl模块 1 获取execl文件中所有的工作表的sheet表名 import openpyxl wb = openpyxl.load_workbook(file) print (wb.active) #当前活动的工作表,当前工作的 mysheet1=wb['Sheet1'] #获取某张工作表 print (list(mysheet1.values)) #mysheet1.values 生成器,以列表list的形式,获取到Sheet1所有的数据 celldata1=mysheet1.cell[1,2].value #读取sheet中(第1行,第2列)的数据 # 获取workbook中所有的表格 sheets = wb.sheetnames print (sheets) #结果 ['Sheet1', 'Sheet2', 'Sheet3'] # 循环遍历所有sheet for i in range(len(sheets)): mysheet = wb[sheets[i]] print (mysheet.max_row) #行数 print (mysheet.max_column) #列数 print (mysheet.cell(1,2).value #读取sheet1表中的第1行,第2列的数据 print (mysheet) #结果:<Worksheet "Sheet1"> <Worksheet "Sheet2"> <Worksheet "Sheet3"> print('第' + str(i + 1) + '个sheet Name: ' + sheet.title) 运行结果: 第1个sheet Name: Sheet1 第2个sheet Name: Sheet2 第3个sheet Name: Sheet3 按行读取工作表的数据: mysheet1=wb['Sheet1'] max_r=mysheet.max_row #最大的行数 max_c=mysheet.max_column #最大的列数 for row in sheet.iter_rows(min_row=1, min_col=1, max_col=max_c, max_row=max_r): print (row)): # 读取标题行 for row in sheet.iter_rows(max_row=1): title_row = [cell.value for cell in row] print(title_row) # 读取标题行以外数据 for row in sheet.iter_rows(min_row=2): row_data = [cell.value for cell in row] print(row_data) 2 写入数据到新的execl里: 将data数据写入至execl表格中: from openpyxl import Workbook wb = Workbook() sheet = wb.active data = ((11, 48, 50),(81, 30, 82),(20, 51, 72),(21, 14, 60),(28, 41, 49),(74, 65, 53),("Peter", 'Andrew',45.63)) for i in data: sheet.append(i) wb.save('appending_values.xlsx') 将原x.xlsx表里的数据重新写入至新的new.xlsx表格中 from openpyxl import Workbook new_wb=Workbook() new_sheet=new_wb.active for row in sheet.iter_rows(min_row=1): #获取原表里的所有的数据 row_data = [cell.value for cell in row] #print(row_data) new_sheet.append(row_data) new_wb.save('new.xlsx') 遍历execl中的多个sheet表数据: import xlrd import openpyxl #mport pyexcel from xlrd import open_workbook #file='C:/Users/50774/Desktop/pyscript//x.xlsx' file="x.xlsx" print (file) book=xlrd.open_workbook(file) sname=openpyxl.load_workbook(file).sheetnames #print (sname) wb = openpyxl.load_workbook(file) # 获取workbook中所有的表格 sheets = wb.sheetnames print (sheets) for i in range(len(sheets)): print("*********************") mysheet = wb[sheets[i]] print (mysheet.max_row) #行数 print (mysheet.max_column) #列数 data = [] for r in range(1,mysheet.max_row+1): ln = [] for c in range(1,mysheet.max_column+1): celldata=mysheet.cell(r,c).value #print (celldata) ln.append(celldata) #print (ln) data.append(ln) print (data)
原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/276733.html