如何利用python將表復制到數據庫


1、打開表

book = xlrd.open_workbook("收入數據.xls")
sheet = book.sheet_by_name("Sheet1")

 

2、連接數據庫

conn = pymysql.connect(
        host='localhost',
        user='root',
        passwd='root',
        db='sys',
        port=3306,
        charset='utf8'
        )

 

3、獲取游標

cur = conn.cursor()

 

4、創建插入數據庫語句

 

 

query = 'insert into income (datetime,ironincome,generalincome,baiincome)values("%s","%s","%s","%s")'
# 創建一個for循環迭代讀取xls文件每行數據的, 從第二行開始是要跳過標題行
for r in range(1, sheet.nrows):
      print(sheet.nrows)

      datetime    = sheet.cell(r,0).value
      print("======================")
      ironincome       = sheet.cell(r,1).value
      print("ironincome="+str(ironincome),type(ironincome))
      generalincome   = sheet.cell(r,2).value
      #打印general_income類型
      # print("general_income=" + str(general_income), type(general_income))
      print("3hang",generalincome)
      baiincome    = sheet.cell(r,3).value

      values = (datetime,ironincome,generalincome,baiincome)
      # 執行sql語句
      cur.execute(query%values)

5、關閉數據庫

cur.close()
conn.commit()
conn.close()
columns = str(sheet.ncols)
rows = str(sheet.nrows)

 

 

執行前

執行后

 

完整代碼如下

# -*- coding:utf-8 -*-

import xlrd
import pymysql
#打開數據所在的工作簿,以及選擇存有數據的工作表
book = xlrd.open_workbook("收入數據.xls")
sheet = book.sheet_by_name("Sheet1")
#建立一個MySQL連接
conn = pymysql.connect(
        host='localhost',
        user='root',
        passwd='root',
        db='sys',
        port=3306,
        charset='utf8'
        )
# 獲得游標
cur = conn.cursor()
# 創建插入SQL語句
query = 'insert into income (datetime,ironincome,generalincome,baiincome)values("%s","%s","%s","%s")'
# 創建一個for循環迭代讀取xls文件每行數據的, 從第二行開始是要跳過標題行
for r in range(1, sheet.nrows):
      print(sheet.nrows)

      datetime    = sheet.cell(r,0).value
      print("======================")
      ironincome       = sheet.cell(r,1).value
      print("ironincome="+str(ironincome),type(ironincome))
      generalincome   = sheet.cell(r,2).value
      #打印general_income類型
      # print("general_income=" + str(general_income), type(general_income))
      print("3hang",generalincome)
      baiincome    = sheet.cell(r,3).value

      values = (datetime,ironincome,generalincome,baiincome)
      # 執行sql語句
      cur.execute(query%values)
cur.close()
conn.commit()
conn.close()
columns = str(sheet.ncols)
rows = str(sheet.nrows)
print ("導入 " +columns + "" + rows + " 行數據到MySQL數據庫!")

 

 注意點:

1、表格中不要有空行,要不然表格數據插入到數據庫時總是報空(這個錯折磨我好久啦!!!)

2、調試時,用debug和print都能方便你很好的解決問題,學着用起來吧!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM