python将excel导入mysql_Python将Excel数据自动导入MySQL,python,实现,excel,到,中

废话不多说,下面附上代码。

# -*- coding: utf-8 -*-

"""

Created on Mon Apr 20 14:18:49 2020

@author: admin

"""

import os

import pandas as pd

#import cx_Oracle as cx

from sqlalchemy import create_engine

import pymysql

file_name=[]

#获得文件的路径

def get_file(file_dir):

for parent, dirnames, filenames in os.walk(file_dir):

for filename in filenames:

a = os.path.join(parent, filename)

file_name.append(a)

#return file_name

#调用函数

get_file(r'C:\Users\admin\Desktop\tech\table')

for i in file_name:

df=pd.DataFrame(pd.read_excel(i))

#转为字符串

df1=df.astype(str)

b = df.columns.size

#重命名列名

col_name = []

for j in range(b):

a ='col_'+ str(j)

col_name.append(a)

#行数

m = df.shape[0]

#列数

n = df.shape[1]

Matrix = [[0 for x in range(n)] for y in range(m)]

#去除单元格前后的空格

for k in range(m):

for j in range(n):

Matrix[k][j]=df1.iloc[k][j].strip()

df2 = pd.DataFrame(Matrix,columns=col_name)

df2.columns = col_name

df2 = df2.applymap(lambda x: x if str(x) != 'nan' else '')

#截取表名

table_name=i.split('\\')[-1].split('.')[0]

#调用sqlalchemy包自动生成表插入数据

try:

engine=create_engine('mysql+pymysql://root:123@192.168.3.274:3336/test?charset=utf8',encoding='utf8')

df2.to_sql(table_name,con=engine,if_exists='replace',index=False)

except UnicodeEncodeError:

print(table_name+'报错了')

continue

生成的表结构:如下所示:

CREATE TABLE pub_newhigh_02_jc (

XH bigint(20) NULL,

ENTNAME text NULL,

UNISCID text NULL,

ZCDZ text NULL,

QYFZR text NULL,

FZRDH text NULL,

RZID text NULL,

RDND bigint(20) NULL,

YYSRZE double NULL,

XSSR double NULL,

GXJSCPSR double NULL,

JCKZE double NULL,

YJKAJF double NULL,

LRZE double NULL,

JLR double NULL,

SJSJSF double NULL,

JNZZSE double NULL,

JNSDSE double NULL,

JMSZE double NULL,

CYRYSL bigint(20) NULL,

WJZJSL bigint(20) NULL,

DNZLSQSL bigint(20) NULL,

DNSQFMZLSL bigint(20) NULL,

QMYYYYZLSL bigint(20) NULL,

QMYYFMZLYXSL bigint(20) NULL,

QMYYRJZZQ bigint(20) NULL,

DNHDRJZZQ bigint(20) NULL,

QMJCDLSJZYQ bigint(20) NULL,

QZDNJCDLBTSJZYQ bigint(20) NULL,

QMZWXPZSL bigint(20) NULL,

QZDNZWXPZSL bigint(20) NULL,

QMGJXYSL bigint(20) NULL,

QZDNGJXYSL bigint(20) NULL,

QMGJYJZYBHPZSL bigint(20) NULL,

QZDNGJYJZYBHPZSLbigint(20) NULL,

SSQY bigint(20) NULL,

GXJSLX text NULL,

YXQQ double NULL,

YXQZ double NULL,

BSC double NULL,

SSDS double NULL,

SFSCRD double NULL,

JFSJRQ double NULL,

ZJZ double NULL,

RCTDSL double NULL,

QMYYSYXXZLYXSL double NULL,

DNSQSYXZLSL double NULL,

QMYYWGZLYXSL double NULL,

DNSQWGZLSL double NULL,

QMGJJNZWPZSL double NULL,

QZDNGJJNZWPZSL double NULL,

QMYYQTZLYXSL double NULL,

DNSQQTZLSL double NULL,

YFTRBL double NULL,

YFTRZZL double NULL,

GNYFTRBL double NULL,

LRZZL double NULL,

ZSRZZL double NULL,

ZCFZL double NULL

)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值