1. 程式人生 > 其它 >python讀取Excel內容並寫入MySQL資料庫指令碼

python讀取Excel內容並寫入MySQL資料庫指令碼

技術標籤:python資料庫pythonmysqlexcel

python讀取Excel內容並寫入MySQL資料庫指令碼

準備Excel(test.xlsx)

excel

導庫

import pymysql
import xlrd

完整程式碼

import pymysql
import xlrd
def connect_database(dataname,user,password):
    db = pymysql.connect(host='127.0.0.1',port=3306,user=user,passwd=password,db=dataname, charset='utf8')
    return db
def read_excel(url):
    workbook = xlrd.open_workbook(r''+url)
    # 獲取所有sheet
    workbook.sheet_names()
    # 獲取 第一個 sheet
    sheet1_name = workbook.sheet_names()[0]
    print("第一個Sheet名稱:"+sheet1_name)
    # 根據sheet索引或者名稱獲取sheet內容
    sheet1 = workbook.sheet_by_name('Sheet1')
    # sheet的名稱,行數,列數
    # rows = sheet1.row_values(0)  # 獲取第1行內容
    # cols = sheet1.col_values(0)  # 獲取第1列內容
    # 獲取單元格內容的三種方法
    # sheet2.cell(1, 0).value.encode('utf-8')
    # sheet2.cell_value(1,0).encode('utf-8')
    # sheet2.row(1)[0].value.encode('utf-8')
    return sheet1
if __name__ == '__main__':
    conn = connect_database("school", "root", "root")
    cursor = conn.cursor()
    # 查
    # check_sql = "select * from student"
    # cursor.execute(check_sql)
    # data = cursor.fetchall()
    # for i in data:
    #     print(i)
    # 改
    # sql = " update student set age = 999 where name = 'liudehua'"
    # cursor.execute(sql)
    # conn.commit()
    # 增 和 改 差不多 除了sql改變其他不變
    #------------------獲取Excel表中的內容-----------
    sheet1 = read_excel('D:\\test.xlsx')
    cols_1 = sheet1.col_values(0)  # 獲取第1列內容
    cols_2 = sheet1.col_values(1)  # 獲取第1列內容
    cols_3 = sheet1.col_values(2)  # 獲取第1列內容
    print(cols_1)
    print(cols_2)
    print(cols_3)
    #------------------end-------------------------
    for i in range(1,len(cols_1)):
        # print(cols_1[i])
        sql = "insert into student(name,sex,age) values('" +cols_1[i]+"',"+str(cols_2[i])+","+str(cols_3[i])+")"
        print(sql)
        cursor.execute(sql)
    conn.commit()

列印結果

第一個Sheet名稱:Sheet1
['name', '張觀博', '張欣竹', '張欣陽', '張剛軍', '張揚陽', '張靖陽']
['sex', 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
['age', 12.0, 17.0, 13.0, 12.0, 16.0, 12.0]
insert into student(name,sex,age) values('張觀博',1.0,12.0)
insert into student(name,sex,age) values('張欣竹',1.0,17.0)
insert into student(name,sex,age) values('張欣陽',1.0,13.0)
insert into student(name,sex,age) values('張剛軍',1.0,12.0)
insert into student(name,sex,age) values('張揚陽',1.0,16.0)
insert into student(name,sex,age) values('張靖陽',1.0,12.0)

資料庫結果

在這裡插入圖片描述