通过python操控MYSQL添加数据,并将数据添加到EXCEL中

第一步 在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()

完成

猜你喜欢

转载自blog.csdn.net/qq_41124528/article/details/81837159