python操作excel需要使用的模块有哪些
python操作excel需要使用的模块有哪些?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
python操作excel需要使用的模块有xlrd、xlwt、xlutils。对excel进行读、写、更新操作。操作excel时需要先导入这些模块,demo如下:
excel-读操作知识点:
importxlrd'''读取excel的操作步骤如下:1.打开excel,打开的excel必须存在2.获取sheet对象3.对excel进行操作:获取excel的总行数、总列数、读取excel每一行的数据、读取excel每一列的数据、获取某个单元格的值'''#打开excel,打开的excel必须存在,返回book对象book=xlrd.open_workbook('students.xlsx')#通过索引获取sheet对象sheet=book.sheet_by_index(0)#有多个sheet页时可以通过sheet的名称来获取sheet对象sheet1=book.sheet_by_name('Sheet1')#获取excel的总行数,rows=sheet.nrows#获取excel的总列数cols=sheet.ncols#获取excel第2行的数据,返回结果为list:[2.0,'b','women']row_value=sheet.row_values(2)#获取excel第1列的数据,返回结果为list:['name','a','b','c','d','e','f','g','小白','小黑']col_values=sheet.col_values(1)#获取单元格第8行第1列的数据,返回结果为text:text:'小白'cell_value=sheet.cell(8,1)#将text类型的结果转换为str类型:小白cell_str=sheet.cell(8,1).value
注意:获取每行、每列、某个单元格的值时,注意行、列的值要存在,否则会报错:list index out of range
excel - 读取excel小案例:
importxlrd'''读取excel的数据,读取数据的列固定,循环读取每行数据,读取后的数据格式如下:[{'name':xxx,'sex':xxx,'id':1},{'name':xxx,'sex':xxx,'id':1},.......]'''defreadExcel():try:#若输入的excel不存在,则打开excel报错book=xlrd.open_workbook('students.xlsx')exceptExceptionase:print('errormsg:',e)else:sheet=book.sheet_by_index(0)#获取excel的总行数rows=sheet.nrowsstu_list=[]#循环读取每行数据,第0行是表头信息,所以从第1行读取数据forrowinrange(1,rows):stu={}#获取第row行的第0列所有数据id=sheet.cell(row,0).valuename=sheet.cell(row,1).valuesex=sheet.cell(row,2).value#将id、name、sex添加到字典,若元素不存在则新增,否则是更新操作stu['id']=idstu['name']=namestu['sex']=sexstu_list.append(stu)print(stu_list)if__name__=='__main__':readExcel()
excel数据格式如下:
excel - 写操作知识点:
importxlwt'''写excel的操作步骤如下:1.打开excel,打开不存在的excel,若打开已存在的excel,进行写操作,写入的数据会覆盖以前的数据2.获取sheet对象并指定sheet的名称3.对excel进行操作:写入excel、保存excel'''#打开excel创建book对象book=xlwt.Workbook()#创建sheet指定sheet名称sheet=book.add_sheet('stu2')#写入excel数据,第n行第n列写入某个值,写入的数据类型为strsheet.write(0,0,'编号')sheet.write(0,1,'姓名')sheet.write(0,2,'年龄')#保存excel,保存的后缀必须是xlsbook.save('studet.xls')
excel写入 新的excel后,数据格式如下:
excel操作 已存在的excel,进行写操作后的 excel格式如下:
---->
excel - 写excel小案例:
importxlwt'''将list数据:[{'name':'小白','id':1.0,'sex':'男'},{'name':'小花','id':2.0,'sex':'女'},{'name':'小黑','id':3.0,'sex':'男'},{'name':'小茹','id':4.0,'sex':'女'},{'name':'小小','id':5.0,'sex':'男'}]写入excel,title信息为:编号、姓名、性别'''defwriteExcel():book=xlwt.Workbook()sheet=book.add_sheet('stu')titles=['编号','姓名','性别']#循环读取titles的长度,col的值为:0,1,2,并将title值写入excelfortitle_colinrange(len(titles)):#title写入excel的第0行的第col列,写入titles[col]值sheet.write(0,title_col,titles[title_col])students_list=[{'name':'小白','id':1.0,'sex':'男'},{'name':'小花','id':2.0,'sex':'女'},{'name':'小黑','id':3.0,'sex':'男'},{'name':'小茹','id':4.0,'sex':'女'},{'name':'小小','id':5.0,'sex':'男'}]forstu_rowinrange(len(students_list)):#循环读取student_list的长度,从0开始,写入excel时从第1行开始写入数据#写入excel的数据是从list里进行取值,获取list的每个元素,返回字典,然后通过字典的key获取valuesheet.write(stu_row+1,0,students_list[stu_row]['id'])sheet.write(stu_row+1,1,students_list[stu_row]['name'])sheet.write(stu_row+1,2,students_list[stu_row]['sex'])book.save('student.xls')if__name__=='__main__':writeExcel()
excel数据格式如下:
excel- 更新操作知识点:
importxlrdfromxlutils.copyimportcopy'''更新excel操作:1.打开excel,更新的excel必须存在2.复制一个新的excel,使用xlutils模块中的copy方法3.更新excel内的数据4.保存更新后的excel数据,以前的excel数据不会更改'''fromxlutils.copyimportcopy#打开excelbook=xlrd.open_workbook('student.xlsx')#复制一个新的excelnew_book=copy(book)#查看某个对象下的所有方法#print(dir(new_book))#获取新excel的sheet对象sheet=new_book.get_sheet(0)#新增一列数据sheet.write(0,3,'更新')#更新第4行第1列的值,将其修改为'郭静',修改的数据类型为strsheet.write(4,1,'郭静')#保存更改后的excel,以前的excel数据不更改new_book.save('student.xls')
以上为excel简单操作~~~~
案例:
写一个函数,传入一个表名,然后把这个表里面所有的数据导出excel里面。
importpymysqlimportxlwtimporthashlibdic={"host":'192.1xx.xx.x','user':'mysql_xx','password':'xxx@123','port':3306,'db':'user_xx'}#mysql操作defop_mysql(sql,res_many=False):con=pymysql.connect(host=dic['host'],user=dic['user'],password=dic['password'],db=dic['db'],port=dic['port'],charset='utf8',autocommit=True)cur=con.cursor(pymysql.cursors.DictCursor)cur.execute(sql)ifres_many:res=cur.fetchall()else:res=cur.fetchone()cur.close()con.close()returnres#查询sql,将结果写入exceldefop_table(table_name):sql='select*from{0};'.format(table_name)res_data=op_mysql(sql,res_many=True)#返回结果是list[{},{}]book=xlwt.Workbook()sheet=book.add_sheet('标签')forrow,row_datainenumerate(res_data):forcol,col_keyinenumerate(row_data):#获取下标、字典keyifrow==0:sheet.write(0,col,col_key)else:sheet.write(row,col,row_data[col_key])book.save('label_data.xls')op_table('xxx_label')
excel 插件效果:
感谢各位的阅读!看完上述内容,你们对python操作excel需要使用的模块有哪些大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。