python Excel操作
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) # 一定要记得保存
#读取excel def 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了