第一步 在python中创建mysql数据表
import pymysql #导入模块
def getCon(): #联接到数据库,并封装循环使用,db是数据库名字
conn = pymysql.connect(host = '127.0.0.1',user='root',passwd='123456',db='movies')
return conn
#
#创建数据表
def createALL():
conn = getCon()
sql ='''create table movierank( #这一段为sql语句,创建数据表
moviename varchar(255) not null primary key,
boxoffice float not null,
percent float not null,
days int(11) not null,
totalboxoffice float not null)
'''
cur = conn.cursor()
cur.execute(sql)
conn.commit()
# createALL() #调用函数,调用完成及时注释掉,避免多次调用报错
#修改字段属性
def alterALL():
conn = getCon()
sql = "alter table movierank modify percent varchar(255) not null " #将percent的列属性改成varchar(255)
cur = conn.cursor()
cur.execute(sql)
# alterALL()
#插入数据
def insertALL(data):
conn = getCon()
sql ="insert into movierank values('%s','%f','%s','%d','%f')" #占位符使用时注意列类型的区分d:整数s:字符串f:浮点小数
cur =conn.cursor()
cur.execute(sql%data)
conn.commit()
data =('21克拉',1031.92,'15.18%',2,2827.09)
data2 =('狂暴巨兽',2928.28 ,'43.07%',9 ,57089.2)
data3 =('起跑线',161.03 ,'2.37%',18 ,19873.43)
data4 = ('头号玩家', 1054.87 ,'15.52%',23,127306.41)
data5 =('红海行动', 45.49, '0.67%',65, 364107.74)
data6=('犬之岛', 617.35, '9.08%',2, 1309.09)
data7=('湮灭', 135.34 ,'1.99%',9, 5556.77)
# insertALL(data) #调用函数,并导入数据
# insertALL(data2)
# insertALL(data3)
# insertALL(data4)
# insertALL(data5)
# insertALL(data6)
# insertALL(data7)
#查看数据
def searchALL():
lt =[] #建立空列表,用于后面插入excel中时使用
conn = getCon()
sql = "select * from movierank"
cur=conn.cursor()
cur.execute(sql)
all = cur.fetchall() #查看所有数据
for i in all: #通过遍历查看
lt.append(i) #将数据放到空列表中
return lt
#下面为实验验证效果的注释
# for i in all:
# print(i) #此时打印数据,数据格式为元组
# for j in i: #在进行一次遍历,将每一个数据都打印出来
# print(j,end='\t') #两次遍历是将数据显示出来
# print()
searchALL() #调用涵数
第二步为将数据插入到EXCEL中
import xlrd #导入需要的模块
import xlwt
wbk = xlwt.Workbook()
sheet=wbk.add_sheet('movieRank.xlsx')
for i in range(len(searchALL())): #计算列表的长度就是计算有多少行
for j in range(len(searchALL()[0])): #计算列表中的第一个列表中的数据的长度就是有多少列
sheet.write(i,j,searchALL()[i][j]) #通过索引写入数据
wbk.save('moviesrank.xlsx') #保存
#查看是否成功
wk = xlrd.open_workbook('moviesrank.xlsx')
sheet = wk.sheet_by_index(0)
nrows = sheet.nrows
ncols = sheet.ncols
#查看行值
for i in range(nrows):
myrowvalue = sheet.row_values(i)
# print(myrowvalue)
#查看列值
for j in range(ncols):
mycolvalue = sheet.col_values(j)
# print(mycolvalue)
#查看单元格的值
for i in range(nrows):
for j in range(ncols):
mycellvalue = sheet.cell(i,j).value
print(mycellvalue,end='\t')
print()
完成