代碼如下:
# -*- coding: utf-8 -*-
import pymysql
import xlrd
# 連接數據庫
try:
db = pymysql.connect(host="127.0.0.1",
user="root",
passwd="root",
db=" test",
charset='utf8')
except:
print("could not connect to mysql server")
def open_excel():
try:
book = xlrd.open_workbook("user.xlsx")
# 文件名,把文件與py文件放在同一目錄下;當其不與此腳本在同一目錄下時,需要寫上其絕對路徑
try:
sheet = book.sheet_by_name("Sheet1")
return sheet
except:
print("locate worksheet in excel failed!")
except:
print("open excel file failed!")
def insert_deta():
sheet = open_excel()
cursor = db.cursor()
row_num = sheet.nrows
print(row_num)
# 第一行是標題名,對應表中的字段名所以應該從第二行開始,計算機以0開始計數,所以值是1
for i in range(1, row_num):
row_data = sheet.row_values(i)
print(row_data[0])
value_id = int(row_data[0])
value1 = int(row_data[1])
value2 = int(row_data[2])
print(value_id, value1, value2)
sql = "UPDATE auth_user SET member_type1_id={0},member_type2_id={1} WHERE id={2}".format(value1, value2, value_id)
cursor.execute(sql) # 執行sql語句
db.commit()
cursor.close() # 關閉連接
if __name__ == '__main__':
insert_deta()
過程中遇到的問題:
1、數據庫名出錯。
2、在網上查找到大部分都是數據庫插入操作,很少有更新操作,因此在寫sql時遇到了一下問題。