日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

python读取excel生成mysql建表语句_python读取excel文件并自动在mysql中建表导数据

發布時間:2024/9/3 数据库 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python读取excel生成mysql建表语句_python读取excel文件并自动在mysql中建表导数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

"""

根據excel在mysql中建表(表名為文件名,字段為csv中的header,默認所有字段為varchar,如需更改,在數據庫中更改即可),并插入數據

"""

import xlrd

import pymysql

from datetime import date, datetime

# 建表并生成插入語句

from xlrd import xldate_as_tuple

def create_table(file_name, header):

table_name = file_name.split(".")[0]

header = [str(i).replace("-", "_").replace("-", "_").replace("(", "_").replace(")", "") for i in header]

create_sql = "CREATE TABLE `%s` (`id` int(11) NOT NULL AUTO_INCREMENT," % table_name

for i in header:

create_sql += "`%s` varchar(255) DEFAULT NULL," % i

create_sql += "PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;"

cursor.execute(create_sql)

db.commit()

insert_sql = "insert into %s(%s)values(%s)" % (table_name, ",".join(header), ",".join(['%s'] * len(header)))

print(insert_sql)

return insert_sql

# 每一千條插入數據庫一次

def insert_data(file_name):

excel_path = "%s%s" % (dir_path, file_name)

wb = xlrd.open_workbook(filename=excel_path)

# 通過sheet索引

worksheet = wb.sheet_by_index(0)

# 通過sheet名

# worksheet = wb.sheet_by_name("人員")

cols_count = worksheet.ncols

insert_datas = []

for i in range(worksheet.nrows):

if i == 0:

row_data = worksheet.row_values(0)

insert_sql = create_table(file_name, row_data)

continue

row_data = []

for j in range(cols_count):

cell_type = worksheet.cell(i, j).ctype

cell_value = worksheet.cell_value(i, j)

if cell_type == 3:

# 轉成datetime對象

date_tool = datetime(*xldate_as_tuple(cell_value, 0))

cell_value = date_tool.strftime('%Y-%d-%m %H:%M:%S')

elif cell_type == 4:

cell_value = True if cell_value == 1 else False

row_data.append(cell_value)

sql_data = tuple(row_data)

print(sql_data)

insert_datas.append(sql_data)

if i + 1 % 1000 == 0:

cursor.executemany(insert_sql, insert_datas)

db.commit()

insert_datas = []

if len(insert_datas) != 0:

cursor.executemany(insert_sql, insert_datas)

db.commit()

db = pymysql.connect(host='localhost', port=3306, user='root', passwd="123zxcv", db='test')

cursor = db.cursor()

dir_path = "F:/"

insert_data("name.xlsx")

db.close()

總結

以上是生活随笔為你收集整理的python读取excel生成mysql建表语句_python读取excel文件并自动在mysql中建表导数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。