操作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')