使用Excel初始化mysql数据库

# 读取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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倾云鹤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值