今天分享一個(gè)剛剛完成的Python腳本,一個(gè)實(shí)用的小技能阻肿,就是利用Python代碼谈竿,將EXCEL表格數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫(kù)中团驱!話不多說(shuō),下面代碼示例空凸。
1示例代碼:
import xlrd
import pymysql
#打開(kāi)數(shù)據(jù)所在的工作簿嚎花,以及選擇存有數(shù)據(jù)的工作表
book = xlrd.open_workbook("students.xls")
sheet = book.sheet_by_name("sheet1")
#建立一個(gè)MySQL連接
conn = pymysql.connect(
host='localhost',
user='root',
passwd='python',
db='python',
port=3306,
charset='utf8'
)
# 獲得游標(biāo)
cur = conn.cursor()
# 創(chuàng)建插入SQL語(yǔ)句
query = 'insert into student_tbl (name,sex,minzu,danwei_zhiwu,phone_number,home_number) values (%s, %s, %s, %s, %s, %s)'
# 創(chuàng)建一個(gè)for循環(huán)迭代讀取xls文件每行數(shù)據(jù)的, 從第二行開(kāi)始是要跳過(guò)標(biāo)題行
for r in range(1, sheet.nrows):
name = sheet.cell(r,1).value
sex = sheet.cell(r,2).value
minzu = sheet.cell(r,3).value
danwei_zhiwu = sheet.cell(r,4).value
phone_number = sheet.cell(r,5).value
home_number = sheet.cell(r,6).value
values = (name,sex,minzu,danwei_zhiwu,phone_number,home_number)
# 執(zhí)行sql語(yǔ)句
cur.execute(query, values)
cur.close()
conn.commit()
conn.close()
columns = str(sheet.ncols)
rows = str(sheet.nrows)
print ("導(dǎo)入 " +columns + " 列 " + rows + " 行數(shù)據(jù)到MySQL數(shù)據(jù)庫(kù)!")
2.導(dǎo)入效果:
3.代碼解析:
這個(gè)Python腳本,用到了兩個(gè)Python庫(kù)呀洲,第一個(gè)是xlrd紊选,這個(gè)庫(kù)是用來(lái)操作Excel文件的,在上述代碼中這個(gè)庫(kù)的使用我都寫了注釋道逗,可以看出來(lái)兵罢。它的使用還是比較方便的。第二個(gè)庫(kù)就是pymysql滓窍,他的作用是鏈接MySQL數(shù)據(jù)庫(kù)卖词,在Python2.X中使用的是MySQLdb這個(gè)庫(kù)鏈接數(shù)據(jù)庫(kù),但是MySQLdb不支持Python3.X吏夯,所以在Python3.X中用pymysql此蜈,作用都是一樣的。