教程集 www.jiaochengji.com
教程集 >  Python编程  >  Python入门  >  正文 Python如何操作excel

Python如何操作excel

发布时间:2021-12-15   编辑:jiaochengji.com
教程集为您提供Python如何操作excel等资源,欢迎您收藏本站,我们将为您提供最新的Python如何操作excel资源

python操作excel需要使用的模块有xlrd、xlwt、xlutils。对excel进行读、写、更新操作。操作excel时需要先导入这些模块,demo如下:

excel-读操作知识点:

<pre class="brush:php;toolbar:false">import xlrd ''' 读取 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</pre>

注意:获取每行、每列、某个单元格的值时,注意行、列的值要存在,否则会报错:list index out of range

excel - 读取excel小案例:

<pre class="brush:php;toolbar:false">import xlrd ''' 读取excel的数据,读取数据的列固定,循环读取每行数据,读取后的数据格式如下: [ {'name':xxx,'sex':xxx,'id':1}, {'name':xxx,'sex':xxx,'id':1}, ....... ] ''' def readExcel():     try:         #若输入的excel不存在,则打开excel报错         book = xlrd.open_workbook('students.xlsx')     except Exception as e:         print('error msg:', e)     else:         sheet = book.sheet_by_index(0)         #获取excel的总行数         rows = sheet.nrows         stu_list = []         #循环读取每行数据,第0行是表头信息,所以从第1行读取数据         for row in range(1, rows):             stu = {}             #获取第row行的第0列所有数据             id = sheet.cell(row, 0).value             name = sheet.cell(row, 1).value             sex = sheet.cell(row, 2).value             #将id、name、sex添加到字典,若元素不存在则新增,否则是更新操作             stu['id'] = id             stu['name'] = name             stu['sex'] = sex             stu_list.append(stu)         print(stu_list) if __name__ == '__main__':     readExcel()</pre>

excel数据格式如下:

z.png

相关推荐:《Python视频教程》

excel - 写操作知识点:

<pre class="brush:php;toolbar:false">import xlwt ''' 写 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列写入某个值,写入的数据类型为str sheet.write(0, 0, '编号') sheet.write(0, 1, '姓名') sheet.write(0, 2, '年龄') #保存excel,保存的后缀必须是xls book.save('studet.xls')</pre>

excel写入 新的excel后,数据格式如下:

x.png

excel操作 已存在的excel,进行写操作后的 excel格式如下:

cc.png

 ----> 

vv.png

excel - 写excel小案例:

<pre class="brush:php;toolbar:false">import xlwt ''' 将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信息为:编号、姓名、性别 ''' def writeExcel():     book = xlwt.Workbook()     sheet = book.add_sheet('stu')     titles = ['编号', '姓名', '性别']     #循环读取titles的长度,col的值为:0,1,2,并将title值写入excel     for title_col in range(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': '男'}]     for stu_row in range(len(students_list)):         #循环读取student_list的长度,从0开始,写入excel时从第1行开始写入数据         #写入excel的数据是从list里进行取值,获取list的每个元素,返回字典,然后通过字典的key获取value         sheet.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()</pre>

excel数据格式如下:

b.png

excel- 更新操作知识点:

<pre class="brush:php;toolbar:false">import xlrd from xlutils.copy import copy ''' 更新excel操作: 1. 打开excel,更新的excel必须存在 2. 复制一个新的excel,使用xlutils模块中的copy方法 3. 更新excel内的数据 4. 保存更新后的excel数据,以前的excel数据不会更改 ''' from xlutils.copy import copy #打开excel book = xlrd.open_workbook('student.xlsx') #复制一个新的excel new_book = copy(book) #查看某个对象下的所有方法 #print(dir(new_book)) #获取新excel的sheet对象 sheet = new_book.get_sheet(0) #新增一列数据 sheet.write(0, 3, '更新') #更新第4行第1列的值,将其修改为'郭静',修改的数据类型为str sheet.write(4, 1, '郭静') #保存更改后的excel,以前的excel数据不更改 new_book.save('student.xls')</pre>

以上为excel简单操作~~~~

案例:

写一个函数,传入一个表名,然后把这个表里面所有的数据导出excel里面。

<pre class="brush:php;toolbar:false">import pymysql import xlwt import hashlib dic = {     "host": '192.1xx.xx.x',     'user': 'mysql_xx',     'password': 'xxx@123',     'port': 3306,     'db': 'user_xx' } #mysql 操作 def op_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)     if res_many:         res = cur.fetchall()     else:         res = cur.fetchone()     cur.close()     con.close()     return res # 查询sql,将结果写入excel def op_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('标签')     for row, row_data in enumerate(res_data):         for col, col_key in enumerate(row_data):   # 获取下标、字典key             if row == 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')</pre>

 excel 插件效果:

n.png

您可能感兴趣的文章:
python如何对excel数据进行处理
[C#]结束Excel的进程的方法
python如何操作表格
Python如何操作excel
c#(asp.net)连接excel的实例代码
python怎么读取excel表格
python excel单元格如何换行
python怎么关闭指定的excel
python怎么读写excel文件
python怎么读取和写入excel表格

上一篇:Python3中的字典 下一篇:Python3中的列表
[关闭]
~ ~