码迷,mamicode.com
首页 > 数据库 > 详细

Python抓取Excel表数据至MySQL表

时间:2014-12-17 22:44:01      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:python   excel   mysql   utf8   sql   

#encoding=utf-8
import xlrd
import MySQLdb

data=xlrd.open_workbook('test.xlsx')
table=data.sheets()[0]

nrows=table.nrows
ncols=table.ncols

tabledict={}

for i in range(nrows):
   tabledict[i]=table.row_values(i)
   
print tabledict[2]
print tuple(tabledict[2])


#读取数据
try:
   conn=MySQLdb.connect(host='localhost',user='root',passwd='1234',db='test',port=3306,charset='utf8')
   cur=conn.cursor()
   cur.execute('select Name, sex from classmate')
   result_set=cur.fetchall()
   for row in result_set:
      print row
   print "Number of rows returned: %d"%cur.rowcount
   cur.close()
   conn.close()
except MySQLdb.Error,e:
   print "MySQL Error %d:%s"%(e.args[0],e.args[1])
   
#插入数据
try:
   conn=MySQLdb.connect(host='localhost',user='root',passwd='1234',db='test',port=3306,charset='utf8')
   cur=conn.cursor()
   sql1="DROP table IF EXISTS ExcelTable;"
   cur.execute(sql1)
   print "Drop success!"
   sql2="create table IF NOT EXISTS ExcelTable(col1 varchar(20) primary key, col2 varchar(256),col3 int(10))"
   cur.execute(sql2)
   print "Sucess to create a new table!"
   
   #列表转元组,tabledict[i]
   
   #通过添加数据到列表中,然后再转为元组,因为元组是不可改的。
   sql3="insert into ExcelTable (col1,col2,col3) values(%s,%s,%s)"
   param01=[]
   for i in range(nrows):
      param01.append(tuple(tabledict[i]))
   param02=tuple(param01)
   print param02
   
   #多行数据
   try:
      cur.executemany(sql3,param02)
      conn.commit()
      print "success insert many records!"
   except Exception,e:
      conn.rollback()
      print e
   
   cur.close()
   conn.close()
except MySQLdb.Error,e:
   print "MySQL Error %d:%s"%(e.args[0],e.args[1])
 

具体的说明和细节,请看源码中的注释。

Python抓取Excel表数据至MySQL表

标签:python   excel   mysql   utf8   sql   

原文地址:http://blog.csdn.net/ling1510/article/details/41988279

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!