美文网首页
使用Excel初始化数据库

使用Excel初始化数据库

作者: 北海鲸落 | 来源:发表于2020-06-01 11:00 被阅读0次
# 读取excel表的内容然后写入数据库
import xlrd,pymysql

# 数据库配置
host = 'localhost' # localhost:本地数据库
user = 'root' # 用户名
password = '123456' # 密码
database = 'test_database' # 数据库名称
charset = 'utf8' # 编码方式

# 创建数据库连接
conn = pymysql.connect(host=host, user=user, password=password
                           , database=database, charset=charset)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

excel_file = "#I1FGQ0数据库.xlsx" # 设置excel文件名
file = xlrd.open_workbook(excel_file) # 读取excel文件

sheets = file.sheet_names() #获取所有的sheet页
for sheet in sheets:
    sheet_values = file.sheet_by_name(sheet) # 获取当前sheet页内地址空间
    sheet_rows = sheet_values.nrows # 获取当前sheet行数
    sheet_cols = sheet_values.ncols # 获取当前sheet列数

    # 因为sheet长度限制在31个字符,所以当sheet过长时,需要手动设置丢失部分

    # sql字符串拼接
    sql = "insert into " + sheet + " ("
    for i in range(0, sheet_cols): # 拼接字段
        field_name = str(sheet_values.cell(0,i).value)
        if(field_name == 'desc'): # 解决自定义字段与sql关键字冲突
            field_name = '`desc`'
        if(i == (sheet_cols-1)): # 校验是否到最后一列
            sql +=  field_name + ") values ("
        else:
            sql +=  field_name + ","
    for j in range(0, sheet_cols): # 拼接占位符
        if(j == (sheet_cols-1)):
            sql +=  "%s" + ")"
        else:
            sql +=  "%s" + ","

    # 获取每行value
    for sheet_row in range(1, sheet_rows):
        values = [] # 使用列表存储
        for sheet_col in range(0, sheet_cols):
            sheet_value = str(sheet_values.cell(sheet_row,sheet_col).value)
            # 当有些日期字段必填时,可以在这里自定义
            if (str(sheet_values.cell(0,sheet_col).value) == "add_time"):
                sheet_value = '2020-05-06'
            if not sheet_value:
                sheet_value = None
            values.append(sheet_value)
        values = tuple(values) # 转换成元组
        
        cursor.execute(sql,values) # 执行sql语句插入数据
        conn.commit()
cursor.close()
conn.close()

相关文章

  • 关于 Excel 使用随想

    Excel使用 数据库 拷贝 Excel 从数据库直接拷贝数据至Excel,中文乱码。解决办法:数据库 ————>...

  • 使用Excel初始化数据库

  • 2018-10-24数据库学习操作

    数据库和excel的区别数据库在线程序excel单机程序 常见的数据库 二.数据库客户端的使用 excel 常见操...

  • Python 实现数据库的数据导出为 Excel 表

    1、连接数据库并查询对应的表数据 2、初始化 Excel 3、写入 Excel 表 4、保存到本地 源码地址

  • excel和数据库

    excel和数据库 使用对象不同 excel的用户群体主要是面向人,所以excel是可视化的操作方式数据库的用户群...

  • 秒杀数据库建立

    --数据库初始化脚本 --创建数据库 CREATEdatabase seckill; --使用数据库 use se...

  • kettle_2自动创建数据库表

    根据excel表格某个字段值,创建数据库表,数据库使用pg。1.excel表输入2.字段选择在“选择和修改”菜单,...

  • 2018-08-16day09

    Excel的使用 数据库 1.SQLyog使用 左侧窗口:查看数据库里的表 右侧上窗口:sql语句编辑窗口 右侧下...

  • 数据库学习

    一.数据库介绍 数据库与excel的区别image.png 常见的数据库image.png 二.数据库客户端使用 ...

  • GROUP BY的使用

    前言 本文介绍 group by 关键字在mysql中的使用 创建数据库 创建如下初始化数据库,供后面测试使用; ...

网友评论

      本文标题:使用Excel初始化数据库

      本文链接:https://www.haomeiwen.com/subject/hsyjzhtx.html