利用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"
    )

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

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

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

  • 4
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于将 Excel 数据导入数据库,有几种方法可以实现,以下是一种常见的方法: 1. 将 Excel 文件保存为 CSV 格式:在 Excel 选择“文件” -> “另存为”,选择 CSV(逗号分隔)格式。 2. 创建数据库结构:根据 Excel 文件的数据结构,在数据库创建相应的结构,确保结构与 Excel 文件的列名和数据类型匹配。 3. 编写程序:使用编程语言(如Python、Java等)连接数据库,并读取 Excel 文件的数据。 - 在 Python ,你可以使用 pandas 库来读取 CSV 文件的数据,并使用 SQL Alchemy 库来连接数据库代码示例: ```python import pandas as pd from sqlalchemy import create_engine # 读取 CSV 文件 df = pd.read_csv('your_csv_file.csv') # 连接数据库 engine = create_engine('your_database_connection_string') # 将数据写入数据库 df.to_sql('your_table_name', engine, if_exists='append', index=False) ``` - 在 Java ,你可以使用 Apache POI 库来读取 Excel 文件的数据,并使用 JDBC 连接数据库代码示例: ```java import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import org.apache.poi.ss.usermodel.*; public class ExcelToDatabase { public static void main(String[] args) { try { // 加载驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 Connection conn = DriverManager.getConnection("your_database_connection_string"); // 创建预编译语句 PreparedStatement stmt = conn.prepareStatement("INSERT INTO your_table_name (column1, column2, ...) VALUES (?, ?, ...)"); // 读取 Excel 文件 Workbook workbook = WorkbookFactory.create(new File("your_excel_file.xlsx")); Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { // 获取每一行的数据,并将其插入数据库 stmt.setString(1, row.getCell(0).getStringCellValue()); stmt.setString(2, row.getCell(1).getStringCellValue()); // ... stmt.executeUpdate(); } // 关闭连接和资源 stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 请根据你的具体需求和编程语言选择合适的方法,并根据你的数据库类型和连接方式进行相应的配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值