python 三种方法实现对Excel表格的读写
1、使用xlrd模块读取数据
#将excel表格内容导入到tables列表中 defimport_excel(tab): #创建一个空列表,存储Excel的数据 tables=[] forrowninrange(1,tab.nrows): array={'设备名称':'','框':'','槽':'','端口':'','onuid':'','认证密码':'','load':'','checkcode':''} array['设备名称']=tab.cell_value(rown,0) array['框']=tab.cell_value(rown,1) array['槽']=tab.cell_value(rown,2) array['端口']=tab.cell_value(rown,3) array['onuid']=tab.cell_value(rown,4) array['认证密码']=tab.cell_value(rown,9) array['load']=tab.cell_value(rown,10) array['checkcode']=tab.cell_value(rown,11) tables.append(array) returntables #导入需要读取Excel表格的路径 data=xlrd.open_workbook(r'G:\\test.xlsx') table=data.sheets()[0] foriinimport_excel(table): print(i)
2、使用xlwt和openpyxl进行写出
importpandasaspd #要事先下载好xlwt和openpyxl模块 defexport_excel(tab): #将字典列表转换为DataFrame pf=pd.DataFrame(list(tab)) #指定字段顺序 order=['设备名称','框','槽','端口','onuid','认证密码','load','checkcode'] pf=pf[order] #将列名替换为中文 columns_map={ '设备名称':'设备名称', '框':'框', '槽':'槽', '端口':'端口', 'onuid':'onuid', '认证密码':'认证密码', 'load':'load', 'checkcode':'checkcode' } pf.rename(columns=columns_map,inplace=True) #指定生成的Excel表格路径 file_path=pd.ExcelWriter('G:\\test1.xlsx') #替换空单元格 pf.fillna('',inplace=True) #输出 pf.to_excel(file_path,encoding='utf-8',index=False) #保存表格 file_path.save() export_excel(tables)
3、使用xlsxwriter写出
defexport_excel(data,fileName):#xlsxwriter库储存数据到excel workbook=xw.Workbook(fileName)#创建工作簿 worksheet1=workbook.add_worksheet("sheet1")#创建子表 worksheet1.activate()#激活表 title=['设备名称','框','槽','端口','onuid','认证密码','load','checkcode']#设置表头 worksheet1.write_row('A1',title)#从A1单元格开始写入表头 i=2#从第二行开始写入数据 forjinrange(len(data)): insertData=[data[j]["设备名称"],data[j]["框"],data[j]["槽"],data[j]["端口"],data[j]["onuid"],data[j]["认证密码"], data[j]["load"],data[j]["checkcode"]] row='A'+str(i) worksheet1.write_row(row,insertData) i+=1 workbook.close()#关闭表 export_excel(import_excel(table),"G:\\test1.xlsx")
网上有人说第三种写入速度快,本人亲测貌似没啥其区别,根据个人爱好写吧,但是xlsxwriter模块只能写入,无法修改貌似
以上就是python三种方法实现对Excle表格的读写的详细内容,更多关于pythonexcle表格的资料请关注毛票票其它相关文章!