1. 最近工作遇到了把excel数据自动导入到MySQL的需求,在考虑了kettle后,不太容易实现导入excel数据自动生成表的问题,于是乎,把解决方法转移到了python,结果python确有实现办法,喜出望外的解决了这个需求。
  2. 现在有一个文件夹,里面是我存放的一批需要导入数据库的excel文件。
  3. 首先我需要获取这个文件夹所有文件的路径,存放到list中,再通过循环的方式读取文件,一个一个的把excel表数据插入到数据库当中。当然在插入过程中,如果数据不规范,可以按照需求进行了数据的清洗处理,我的excel中第一行都是中文汉字的列名,于是乎,我把列按照col_1,col_2,col_3......的形式进行重命名。
  4. 插入数据库用到python包sqlalchemy的create_engine模块,实现自动生成表,插入数据到MySQL中。
  5. 废话不多说,下面附上代码。
    # -*- 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 pymysqlfile_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_namedf2 = 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,QZDNGJYJZYBHPZSL    bigint(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 )

python实现自动导入excel数据到MySQL中相关推荐

  1. python导入excel数据到mysql

    python导入excel数据到mysql 使用多线程,目前大概一分钟写入1w条 环境介绍 windows10-x64 python3.6.5-x64 Excel2016 MySql5.7.18 需要 ...

  2. python绘制动态图表怎么存下来_用python如何实现导入excel数据后自动生成图表?python如何实现交互式动态图表?...

    这个需求涉及的环节太多了.导入excel文件,获取数据 -- 需要xlrd模块把数据导入python 2. 设定输出图表类型 -- 需要matplot模块.根据数据复杂度,可能需要ETL,那么需要pa ...

  3. python | Pandas库导入Excel数据(xlsx格式文件)函数:read_excel()

    导入csv格式文件 python | Pandas库导入csv格式文件函数:read_excel()https://mp.csdn.net/mp_blog/creation/editor/123951 ...

  4. mysql怎么批量导入excel数据_phpmyadmin怎么批量导入excel数据到mysql

    首先我们得到了一个excel表,里面有很多需要我们导入的数据 删除第1行"id""XXX"....的字段行,只保留我们需要的数据部分 单击"文件&qu ...

  5. php导入excel先检查,php 如何在导入Excel数据时检查Mysql数据库内容是否存在,避免重复录入?:怎么样筛选excel表格重复的数据库...

    php 如何在导入Excel数据时检查Mysql数据库内容是否存在,避免重复录入? 如果不想每询一次以提前做一个统询 $sql=mysql_query("select distinct Co ...

  6. python导入excel数据-如何把python中的数据导入excel

    python将数据导入excel的方法:1.在python官网下载xlrd第三方库:2.利用xlrd中的open_workbook函数读入excel文件,即可在python中导入excel数据. 一. ...

  7. python怎么导入txt数据库_Python导入txt数据到mysql的方法

    本文实例讲述了Python导入txt数据到mysql的方法.分享给大家供大家参考.具体分析如下: 从TXT文本转换数据到MYSQL数据库,接触一段时间python了 第一次写东西 用的是Python2 ...

  8. python读取串口数据保存到mysql数据库_Python3读取Excel数据存入MySQL的方法

    Python是数据分析的强大利器. 利用Python做数据分析,第一步就是学习如何读取日常工作中产生各种excel报表并存入数据中,方便后续数据处理. 这里向大家分享python3如何使用xlrd读取 ...

  9. mysql导入excel表_mysql怎么导入excel数据?

    mysql导入excel数据的步骤: 1.第一步我们得到了一个excel表,里面有很多需要我们导入的数据. 2.删除第1行"准考证号""XXX"....只保留我 ...

最新文章

  1. 近900000条if-then关系图谱,让神经网络“懂”常识推理
  2. missing required icon file.图标错误解决
  3. a Line Segment Detector
  4. xshell / xftp家庭/学校免费版官网下载地址
  5. 12.2 全局CSS样式
  6. XCTF_Web_新手练习区:weak_auth
  7. 程序人生 | 35岁以上的 iOS 程序员都到哪里去了?
  8. Jersey 异常处理
  9. 【BERT】BERT的嵌入层是如何实现的?看完你就明白了
  10. Uber的微服务架构实践
  11. BootStrap:基础学习
  12. 第二章 01 节 常用信号及其基本特征
  13. 联想G480笔记本安装系统
  14. python循环中释放内存的方法_我怎样才能在Python中明确释放内存?
  15. 如何获取 ChatGPT OpenAI API Key
  16. 关于 RabbitMQ,应该没有比这更详细的教程了
  17. android简历!剖析Android开发未来的出路在哪里,Android篇
  18. 你经历或者不曾经历过的网赚黄金时代
  19. 世界500强高频逻辑推理智力面试题 (三)
  20. 使用WebGL去实现一个拖拽式UI代码生成App

热门文章

  1. 星球日报 | 虚拟货币挖矿被国家“淘汰”
  2. Debian10 开启路由转发
  3. 俞敏洪:三件让人幸福的事情:有人爱,有事做,有所期待——经典的人生需要效仿
  4. 伽罗华域GF,GF(256)来源
  5. 解决Mac中微信\QQ无法截图的问题
  6. GitHub 要进入中国啦!
  7. 基于PHP的电影订票选座系统
  8. 从零学Java(28)之数组的定义与使用
  9. 基于thinkphp的几个cms框架
  10. 论人不地道,我只佩服TT——北漂18年(68)