读取xls文件中的数据到mysql数据库中,Python代码实现。

import xlrd
import  pymysql

#读取xls文件
def Readxls(path,work_name):
    print("开始读取xls文件")
    if path.strip()!='':
         data=xlrd.open_workbook(path)
         table=data.sheet_by_name(work_name)
    else:
         print("输入的路径为空!")
    return table
#读取xls文件的字段
def ReadXlsClomun(table):
    print("开始读取xls文件中的字段!")
    list2=[]
    list1=table.row_values(0)
    for i in range(0,len(list1)):
        if list1[i]!="":
            list2.append(list1[i])
        else:
            continue
    return list2
#读取xls文件的字段数据
def ReadXlsData(table,row_num):
    print("开始读取xls文件中的数据!")
    data=[[] for i in range(row_num)]
    j=0
    line_number=table.nrows
    for i in range(1,line_number):
        data[j]=table.row_values(i)
        j=j+1
    return data
#执行mysql的语句
def execMysqlStence(create_table,inserte_data,table_name):

    conn = pymysql.connect(host='192.168.197.137', port=3306, user='root', passwd='123456789', db='safedog')
    cursor = conn.cursor()
    crete_affected = cursor.execute(create_table)
    #组合插入语句
    for i in range(0,len(inserte_data)):
        inserte_data1=""
        for j in range(0,len(inserte_data[i])):
            inserte_data2 = '"' + str(inserte_data[i][j]) + '"'
            if j==0:
                 inserte_data1=inserte_data2+","
            elif j==len(inserte_data[i])-1:
                 inserte_data1=inserte_data1+inserte_data2
            else:
                 inserte_data1=inserte_data1+inserte_data2+","

        inserte_sentence="insert into "+table_name+" values ("+inserte_data1+" )"
        print(inserte_sentence)
        insert_affected=cursor.execute(inserte_sentence)
        conn.commit()

#存储数据到mysql的数据库,主函数
def StorageMysql(path,work_name,table_name,row_num):
    table=Readxls(path,work_name)
    column_data=ReadXlsClomun(table)
    print(column_data)
    table_data=ReadXlsData(table,row_num)
    print(column_data[1])
    #组合建表语句
    table="create table "+table_name+" ( "
    for i in range(0,len(column_data)):
        if i==0:
            create_table_sentence=table+column_data[i]+"  varchar(200),"
        elif i==len(column_data)-1:
            create_table_sentence=create_table_sentence+column_data[i]+"  varchar(200) )"
        else:
            create_table_sentence=create_table_sentence+column_data[i]+" varchar(200),"
    print("建表语句为:"+create_table_sentence)
    execMysqlStence(create_table_sentence,table_data,table_name)
if __name__ == "__main__":
    #读取xls文件的路径
    path='D:\ChromeCoreDownloads\panzhi344200811816555189032.xls'
    #工作表的名称
    work_name="Sheet1"
    #需要建表的名称
    table_name="panzhi"
    #表中有多少行
    row_number=25
    StorageMysql(path,work_name,table_name,row_number)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值