操作Excel

操作Excel内容之前要先安装xlrd(读)和xlwt(写)模块,
安装命令:

pip install xlrd
pip install xlwt

下面是练习:

import xlrd
from xlutils import copy

book = xlrd.open_workbook('students.xls')
sheet0 = book.sheet_by_index(0)#获取原来的数据

new_book = copy.copy(book)
sheet = new_book.get_sheet(0)#这个是新的sheet页
sheet.write(0,6,'年龄阶段')#写表头

for i in range(1,sheet0.nrows):
    # age = sheet0.row_values(i)[3] #取age内容
    age = sheet0.cell(i,3).value    #取age内容
    if age<18:
        word='未成年'
    elif age>=18 and age<=30:
        word='青年'
    else:
        word='中年人'
    sheet.write(i,6,word)

new_book.save('students.xls')

1、把每个学生的年龄阶段,加入到excel
1、表头加上,年龄阶段
2、先取到每行数据里面的年龄,判断属于哪个年龄阶段的
1、用xlrd模块打开excel
2、用xlutils模块里面的copy复制一份
3、获取到sheet页
4、修改

下面是另一个练习:

import xlrd
book = xlrd.open_workbook('CJ_test.xls')
sheet = book.sheet_by_index(0)
print(sheet.row_values(0))#某一行的数据
print(sheet.col_values(0))#某一列的数据
print(sheet.cell(0,0).value)#某个单元格的数据
print(sheet.cell(1,2).value)#某个单元格的数据
print(sheet.nrows) #总共有多少行
print(sheet.ncols) #总共有多少列
#整行的数据
#整列的数据
#某个单元格

# sheet = book.sheet_by_name()

for i in range(sheet.nrows):
    print(sheet.row_values(i))

下面是一个从mysql数据库中取出一个表内所有内容的例子

#1、写一个函数,随便输入一个表名,把这个表里面所有的数据,导出到excel里面

#1、'select * from %s' ,查出这个表所有的数据
#2、再把所有的数据写到excel  xlwt

import pymysql,hashlib,xlwt

def op_mysql(sql:str):
    mysql_info = {
        'host': 'ip',
        'port': 3306,
        'password': '123456',
        'user': 'test',
        'db': 'test',
        'charset': 'utf8',
        'autocommit': True
    }
    result = '执行完成'
    conn = pymysql.connect(**mysql_info)
    # cur = conn.cursor(pymysql.cursors.DictCursor) #建立游标
    cur = conn.cursor() #建立游标
    cur.execute(sql)
    field = [ t[0] for t in cur.description ] #获取表里面的所有字段名
    if sql.strip().lower().startswith('select'):
        # result  = cur.fetchone()
        result  = cur.fetchall()
    cur.close()
    conn.close()
    print('所有的字段',field)
    print('所有的数据',result)
    result = list(result) #因为返回的是元组,不能修改,所以转成list
    result.insert(0,field) #加入到最前面
    return result

def export_excel(table_name):
    sql ='select * from %s;'%table_name
    result = op_mysql(sql)
    book = xlwt.Workbook()
    sheet = book.add_sheet('sheet')
    for row, line in enumerate(result):
        for col, t in enumerate(line):
            sheet.write(row, col, t)
    book.save('%s.xls'%table_name)
export_excel('CJ_test')
export_excel('app_myuser')

下面是介绍两种方式写入Excel

import xlwt
book = xlwt.Workbook()
sheet = book.add_sheet('sheet')
# # sheet.write(0,0,'xxx')
#
# #nhy_user  id ,username,passwd,error_count
#
l = [
    [1,'dsk','xxdfsdfsd',0],
    [2,'ldd','xxdfsdfsd',0],
    [3,'lsdd','xxdfsdfsd',0],
    [4,'lsd1','xxdfsdfsd',0],
]

# row = 0#行号
# for line in l: #外面这个循环,每循环一次,就写excel里面一行
#     # col = 0#列号   [1,'dsk','xxdfsdfsd',0]
#     col = 0
#     for t in line:#里面这个循环是控制列的,每循环一次就写一列
#         sheet.write(row,col,t)
#         col+=1
#     row+=1
#

for row,line in enumerate(l):
    for col,t in enumerate(line):
        sheet.write(row,col,t)

book.save('user.xls')

posted @ 2019-05-14 14:28  狂爷  阅读(129)  评论(0编辑  收藏  举报