#使用excel表格跑数据
写一个python脚本,将excel表格中的数据导入到mysql数据库中
excel表

excel表格的每一页都是相同的列数,第一行是描述,所以从第二行开始导入数据
python代码
import traceback
import pymysql
import xlrd
'''
连接数据库
args:db_name(数据库名称)
returns:db
'''
def mysql_link(de_name):
try:
db = pymysql.connect(host="xxx", # IP地址
port=xxx, # 端口号
user="xxx", # 用户名
password="xxx", # 密码
db=de_name, # 数据库名
charset='utf8')
return db
except:
print("could not connect to mysql server")
'''
读取excel函数
args:excel_file(excel文件,目录在py文件同目录)
returns:book
'''
def open_excel(excel_file):
try:
book = xlrd.open_workbook(excel_file) # 文件名,把文件与py文件放在同一目录下
return book
except:
print(traceback.print_exc())
print("open excel file failed!")
'''
执行插入操作
args:db_name(数据库名称)
table_name(表名称)
excel_file(excel文件名,把文件与py文件放在同一目录下)
'''
def store_to(db_name, table_name, excel_file):
db = mysql_link(db_name) # 打开数据库连接
cursor = db.cursor() # 使用 cursor() 方法创建一个游标对象 cursor
book = open_excel(excel_file) # 打开excel文件
sheets = book.sheet_names() # 获取所有sheet表名
for sheet in sheets:
sh = book.sheet_by_name(sheet) # 打开每一张表
row_num = sh.nrows
print(row_num)
list = [] # 定义列表用来存放数据
for i in range(1, row_num): # 第一行是标题名,对应表中的字段名所以应该从第二行开始,计算机以0开始计数,所以值是1
row_data = sh.row_values(i) # 按行获取excel的值
value = (row_data[0], row_data[1], row_data[2], row_data[3]) # 选择获取第几列
list.append(value) # 将数据暂存在列表
# print(i)
sql = "INSERT INTO " + table_name + " ( type,operator,name,remark )VALUES(%s,%s,%s,%s)" # 插入的sql语句
cursor.executemany(sql, list) # 执行sql语句
db.commit() # 提交
list.clear() # 清空list
print("worksheets: " + sheet + " has been inserted " + str(row_num) + " datas!")
cursor.close() # 关闭连接
db.close()
if __name__ == '__main__':
# store_to(数据库名,表名,excel文件名)
store_to('fas', 'strategy_operators', 'operator.xlsx')
可能遇到的异常
1.文件找不到
把文件放在运行的py文件同目录下
2.Excel xlsx file; not supported
这里可能会遇到一个异常,**raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+’; not supported’)**原因是xlrd的版本不对,可以改为1.2.0版本的
pip uninstall xlrd
pip install xlrd==1.2.0
这篇博客介绍如何通过Python脚本将Excel表格的数据导入到MySQL数据库中。作者指出,Excel表格的第一行是列名,从第二行开始是实际数据。在实现过程中可能会遇到文件路径错误和xlrd版本不兼容的问题,解决方案包括确保文件与Python脚本在同一目录,以及将xlrd版本降至1.2.0。最后,博客提供了参考文档链接。
4762

被折叠的 条评论
为什么被折叠?



