当前位置:   article > 正文

利用Excel导入数据库的几种实现方式_将excel表自动导入到数据库中的代码

将excel表自动导入到数据库中的代码

利用Excel导入数据库的几种实现方式

Ⅰ 直接使用navicat导入
tips:要导入的excel中的字段与数据库表中的字段对应好
选中数据表后,点击导入向导
在这里插入图片描述
选择数据源
在这里插入图片描述
一路next,然后出现这一步,比对导入字段是否一致
在这里插入图片描述
然后再一路next,即可导入数据。

Ⅱ 利用python导入

首先把要导入的excel数据表放到和py文件相同的目录
在这里插入图片描述
然后根据下面的代码修改自己的数据库配置和参数即可

import xlrd
import pymysql

class Add_Excel_Data_To_MySQL(object):
    """
    Excel表格数据批量导入到MySQL库
    """

    # pymysql连接
    def conn_pymysql(self, host, dbuser, dbpassword, dbname):
        # 连接MySQL
        self.conn = pymysql.connect(host=host, user=dbuser, dbpassword=dbpassword, db=dbname)
        # 获得游标对象, 用于逐行遍历数据库数据
        self.cursor = self.conn.cursor()

    def excel_path(self, file_path, excel_table_name):
        self.excel = xlrd.open_workbook(file_path)
        self.sheet_name = self.excel.sheet_by_name(excel_table_name)

    # 循环Excel表格数据,并且写入到MySQL
    def for_excel_insert_mysql(self, db01, db02, db03):

        # 插入到MySQL
        self.query = "INSERT INTO geo ({}, {}, {}) VALUES (%s, %s, %s)".format(db01,db02,db03)

        # 创建一个for循环迭代读取xls文件每行数据的;
        # 从第二行开始导入;
        # 如果没有标题,则1改成0
        for r in range(1, self.sheet_name.nrows):
            # 导入7列Excel数据(从第一列开始导入);
            # 如果导入的列增加或者减少,请根据实情;
            excel_01 = self.sheet_name.cell(r, 0).value,
            excel_02 = self.sheet_name.cell(r, 1).value,
            excel_03 = self.sheet_name.cell(r, 2).value,
            self.values = (excel_01, excel_02, excel_03)

            # 执行sql语句
            self.cursor.execute(self.query, self.values)

        # 提交
        self.conn.commit()
        # 关闭游标
        self.cursor.close()
        # 关闭数据库连接
        self.conn.close()

        self.columns = str(self.sheet_name.ncols)
        self.rows = str(self.sheet_name.nrows)

        print("一共导入了{}列, {}行数据!".format(self.columns, self.rows))


if __name__ == '__main__':
    a = Add_Excel_Data_To_MySQL()

    # 连接MySQL
    a.conn_pymysql(host="localhost",dbuser="root",dbpassword="123456",dbname="test")

    # Excel文件路径
    a.excel_path("D:\Work-2021\py\geo.xlsx", "test")

    # Excel数据插入MySQL
    a.for_excel_insert_mysql(
        db01="xxx",
        db02="xxx",
        db03="xxx"
    )

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68

Ⅲ 通过Excel直接生成insert语句
首先,选中Excel表格中的含有数据最后一列的下一列的第一格后,输入以下代码:
在这里插入图片描述

=CONCATENATE("insert into geo(gero_name,shi,quxian,address,shi_id,quxian_id) values('",A1,"','",B1,"','",C1,"','",D1,"','",E1,"','",F1,"');")
  • 1

确定写好后,直接拖到最后一行,生成所有insert语句,然后将这一部分insert语句复制出来,navicat导入即可。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/321636
推荐阅读
相关标签
  

闽ICP备14008679号