通過python讀取excel寫入mysql

2021-10-03 18:41:01 字數 2403 閱讀 4119

import pymysql

import xlrd

import sys

from xlrd import xldate_as_datetime

# excel檔案的路徑

excel_path=sys.ar**[1]

host=sys.ar**[2]

user=sys.ar**[3]

password=sys.ar**[4]

db=sys.ar**[5]

table=sys.ar**[6]

# 讀取excel檔案

excel_data = xlrd.open_workbook(excel_path)

# 獲取第乙個sheet頁

sheet = excel_data.sheet_by_index(0)

# 總行數

rows = sheet.nrows

# 總列數

cols = sheet.ncols

# 因為在mysql中新增了一列主鍵為自增id,excel中沒有,所以要提取出除主鍵外的其他字段,才可以與excel匹配

# 獲取表的欄位名

def get_col_values():

global col_result

try:

con = pymysql.connect(host, user, password, db)

cur = con.cursor() # 獲取操作游標,也就是開始操作

sql_select = 'select * from ' + table + ' limit 1;' # 查詢命令

cur.execute(sql_select) # 執行查詢語句

col_result = cur.description # 獲取查詢結果的字段描述

con.close()

except exception as e:

print(e)

print("!!!!!!!!!!!!!!請檢查資料庫連線資訊!!!!!!!!!!!!!!")

exit(-1)

# 將欄位名存入陣列,第乙個字段為主鍵,不存入

columns =

for i in range(1, len(col_result)):

print(columns)

sql = "insert into " + table + '('

for i in columns:

sql = sql + i + ','

# 去掉最後乙個逗號

sql = sql[:-1]

sql += ') values(' + '%s, ' * len(columns) + ')'

sql = sql[:-3]

sql += ')'

print(sql)

return sql

# 清空表

def truncate_table():

try:

con = pymysql.connect(host, user, password, db)

cur = con.cursor()

cur.execute('truncate table ' + table)

con.close()

except exception as e:

print(e)

print("!!!!!!!!!!!!!!請檢查資料庫連線資訊!!!!!!!!!!!!!!")

exit(-1)

# 寫入mysql

def write_to_mysql(sql):

# 建立乙個for迴圈迭代讀取xls檔案每行資料的, 從第二行開始是要跳過標題

for i in range(1, rows):

# item = sheet.row_values(i)[:len(cols)]

data =

# 組裝引數化sql,通過拼接%s得到佔位符

for j in range(0, cols):

try:

con1 = pymysql.connect(host, user, password, db)

cur1 = con1.cursor()

cur1.execute(sql,data)

con1.commit()

con1.close()

except exception as e:

print(e)

print("!!!!!!!!!!!!!!請檢查資料庫連線資訊!!!!!!!!!!!!!!")

exit(-1)

if __name__ == "__main__":

truncate_table()

sql=get_col_values()

write_to_mysql(sql)

C 讀取Excel(通過OleDb)

通過oledb連線,讀取excel。provider microsoft.jet.oledb.4.0 data source filenameurl extended properties excel 8.0 hdr yes imex 1 特別注意 extended properties excel...

Qt通過ODBC讀取excel檔案

之前替學校考試科用c builder做過乙個小的資料庫工具,處理excel 用的,現在想轉換到qt平台下來,在網上搜了搜有一些利用obdc讀取xls檔案的教程 試了一下可以用,但是轉換到圖形介面中遇到點問題,在用qsqltablemodel類的settable 方法使無法讀取到 sheet1 將其換...

Qt通過odbc讀取excel資料

通過odbc讀取,可以使用select語句直接讀取整個工作表,處理excel資料就跟資料庫一樣方便。當然,這種方式也有不足 1 excel 必須只能有一行表頭。3 工作表名相當於資料庫表名,表頭相當於欄位名,所以excel格式必須的固定的,否則無法讀取到資料 讀取的 如下 檔案路徑 qstring ...