簡體   English   中英

使用Python 2.7從Excel導入到MySQL表

[英]Importing from Excel to MySQL Table Using Python 2.7

我正在嘗試從此Excel工作表中的數據插入MySQL表: https : //www.dropbox.com/s/w7m282386t08xk3/GA.xlsx?dl=0

該腳本應從第16行的第二張工作表“ Daily Metrics”開始。MySQL表已經具有名為date,campaign,user和session的字段。

使用Python 2.7,我已經創建了MySQL連接並打開了工作表,但是我不確定如何遍歷這些行並插入數據庫。

import MySQLdb as db
from openpyxl import load_workbook

wb = load_workbook('GA.xlsx')
sheetranges = wb['Daily Metrics']
print(sheetranges['A16'].value)

conn = db.connect('serverhost','username','password','database')

cursor = conn.cursor()

cursor.execute('insert into test_table ...')

conn.close()

謝謝你的幫助!

試試這個,看看它是否滿足您的要求。 您將需要更新到正確的工作簿名稱和位置。 另外, for rw in wb["Daily Metrics"].iter_rows("A16:B20"): ,在for rw in wb["Daily Metrics"].iter_rows("A16:B20"):迭代要迭代的范圍for rw in wb["Daily Metrics"].iter_rows("A16:B20"):

from openpyxl import  load_workbook

wb = load_workbook("c:/testing.xlsx")

for rw in wb["Daily Metrics"].iter_rows("A16:B20"):
    for cl in rw:
        print cl.value

只需要MySQLOpenpyxl的基礎知識,您可以通過閱讀教程自行解決。

在執行腳本之前,您需要創建數據庫和表。 假設您已完成。

import openpyxl
import MySQLdb

wb = openpyxl.load_workbook('/path/to/GA.xlsx')
ws = wb['Daily Metrics']

# map is a convenient way to construct a list. you can get a 2x2 tuple by slicing 
# openpyxl.worksheet.worksheet.Worksheet instance and last row of worksheet 
# from openpyxl.worksheet.worksheet.Worksheet.max_row
data = map(lambda x: {'date': x[0].value, 
                      'campaign': x[1].value, 
                      'users': x[2].value, 
                      'sessions': x[3].value}, 
           ws[16: ws.max_row])

# filter is another builtin function. Filter blank cells out if needed
data = filter(lambda x: None not in x.values(), data)

db = MySQLdb.connect('host', 'user', 'password', 'database')
cursor = db.cursor()
for row in data:
    # execute raw MySQL syntax by using execute function
    cursor.execute('insert into table (date, campaign, users, sessions)'
                   'values ("{date}", "{campaign}", {users}, {sessions});'
                   .format(**row))  # construct MySQL syntax through format function
db.commit()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM