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 ...