xlrd和xlwt处理的是xls文件,单个sheet最大行数是65535能够满足一般的读写需求。
如果有更大需要的,建议使用openpyxl函数,最大行数达到1048576。
1、用openpyxl读取excel
import openpyxl#读excel def readExel(fileName): inwb = openpyxl.load_workbook(fileName) sheetnames = inwb.get_sheet_names() # 获取读文件中所有的sheet,通过名字的方式 ws = inwb.get_sheet_by_name(sheetnames[0]) # 获取第一个sheet内容 # 获取sheet的最大行数和列数 rows = ws.max_row cols = ws.max_column for r in range(1,rows+1): for c in range(1,cols+1): print(ws.cell(r,c).value)#写入excel def writeExcel(fileName): outwb = openpyxl.Workbook() # 打开一个将写的文件 outws = outwb.create_sheet(index=0) # 在将写的文件创建sheet for row in range(1,70000): for col in range(1,4): outws.cell(row, col).value = row*2 # 写文件 outwb.save(fileName) # 一定要记得保存
2、用 xlrd和xlwt读取excel:
#写入excel
import xlrd import xlwt
def writeExcel(fileName): writebook = xlwt.Workbook() # 打开一个excel sheet = writebook.add_sheet('sheet0') # 在打开的excel中添加一个sheet(名字随便取) #------------------------------------------------- #写入操作在这里面进行,格式如下 sheet.write(6, 0, '111') # 写入excel,i行0列 # ------------------------------------------------- writebook.save(fileName) # 一定要记得保存 #读取exceldef readExel(fileName): readbook = xlrd.open_workbook(fileName) sheet = readbook.sheet_by_index(0) nrows = sheet.nrows # 行 ncols = sheet.ncols # 列 for i in range(nrows): for j in range(ncols): print(sheet.cell(i,j).value)
代码解析:
1、打开excel
readbook = xlrd.open_workbook(r'\test\canying.xlsx')
2、获取读入的文件的sheet
sheet = readbook.sheet_by_index(1)#索引的方式,从0开始 sheet = readbook.sheet_by_name('sheet2')#名字的方式
3、获取sheet的最大行数和列数
nrows = sheet.nrows#行 ncols = sheet.ncols#列
4、获取某个单元格的值
lng = sheet.cell(i,3).value#获取i行3列的表格值 lat = sheet.cell(i,4).value#获取i行4列的表格值
5、打开将写的表并添加sheet
writebook = xlwt.Workbook()#打开一个excel sheet = writebook.add_sheet('test')#在打开的excel中添加一个sheet
6、将数据写入excel
sheet.write(i,0,result[0])#写入excel,i行0列 sheet.write(i,1,result[1])
7、保存
writebook.save('answer.xls')#一定要记得保存
参考:
https://www.cnblogs.com/shaosks/p/6098282.html