python操作excel

如果安装了多个版本的python,在线安装第三方模块时,需要指定版本。例如:python3 -m pip install xlutils

一、读excel,用到xlrd模块

import xlrd
book = xlrd.open_workbook('app_student.xls')
sheet = book.sheet_by_index(0)#根据excel索引读取excel  , book.sheet_by_name('sheet1')通过name读取excel
print(sheet.cell(0,0).value)  #指定sheet页里面行和列获取数据

print(sheet.row_values(0))  #获取到第几行内容
print(sheet.row_values(1))
print(sheet.nrows)#获取到excel里面总共多少行
for i in range(sheet.nrows):  #循环获取每行数据
    print(sheet.row_values(i))

print(sheet.ncols)  #获取excel里面总共多少列
print(sheet.col_values(1)) #取第几列数据

 

二、写excel,用到xlwt模块

import pymysql,xlwt
def export_excel(table_name):
    coon=pymysql.connect(
        host='118.24.3.40',user='jxz',passwd='123456',
        port=3306,db='jxz',charset='utf8'
        #port必须写int类型
        #charset必须写utf8
    )#建立数据库连接字典
    cur=coon.cursor()#(cursor=pymysql.cursors.DictCursor)#建立游标,DictCursor返回字典
    sql="select * from %s;"%table_name     #占位符来表示查询条件筛选
    cur.execute(sql)
    # cur.execute('insert into stu(id,name,sex) VALUE (1223,"焦哥","男");')
    # cur.execute('insert into stu (id,name,sex) VALUE (1,"牛","女");')
    fileds=[filed[0] for filed in cur.description] #读取表头存在fileds列表里
    # print(cur.description)
    # for filed in cur.description:
    #     print(filed)
    # print(fileds)
    all_data=cur.fetchall()  #获取数据库里所有的数据
    book=xlwt.Workbook()
    sheet=book.add_sheet("sheet1")
    for col,filed in enumerate(fileds):  #通过k,v方式直接把表头循环写入到表格
        sheet.write(0,col,filed)
    row=1
    for data in all_data:  #循环每行数据
        # print(data)
        for col,filed in enumerate(data):  #每行数据以k,v方式循环写入表格
            # print(col,filed)
            sheet.write(row,col,filed)
        row+=1       #写完一行后,行数+1继续写入下一行数据
    book.save("%s.xls"%table_name)
export_excel("app_student")

 

三、修改excel,用到xlrd,xlutils模块

import xlrd
from xlutils import copy
book=xlrd.open_workbook('app_student.xls')#先用xlrd模块,打开一个excel
new_book=copy.copy(book) #通过xlutils这个模块里面的copy方法,复制一份excel

sheet = new_book.get_sheet(0) #获取sheet页,用的是xlutils里面的方法,xlrd的方法是book.sheet_by_index(0)
lis =['编号','名字','性别','年龄','地址','班级','手机号','金币']
for col,file in enumerate(lis): #把lis列表内容写入到表格
    sheet.write(0,col,file)
sheet.write(0,0,'编号')  #修改每个单元格的内容
sheet.write(0,1,'名字')
new_book.save('app_student.xls')#保存必须用xls,如果用xlsx的话微软是打不开,wps才可以打开

 

posted @ 2018-05-15 11:12  小静学测试  阅读(226)  评论(0编辑  收藏  举报