从 Excel 导入到 MySQL Table 使用 Python 2.7

Importing from Excel to MySQL Table Using Python 2.7

我正在尝试从 Excel sheet 中的数据插入 MySQL table:https://www.dropbox.com/s/w7m282386t08xk3/GA.xlsx?dl=0

脚本应从第 16 行的第二个 sheet "Daily Metrics" 开始。MySQL table 已经包含名为日期、活动、用户和会话的字段.

使用 Python 2.7,我已经创建了 MySQL 连接并打开了 sheet,但我不确定如何遍历这些行并插入到数据库。

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"):

中迭代的范围
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

只需要MySQL and Openpyxl的基础知识,自己看教程就可以解决

在执行脚本之前,您需要创建数据库和table。假设你已经做到了。

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()