从 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()
我正在尝试从 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()