#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])
具体的说明和细节,请看源码中的注释。
原文:http://blog.csdn.net/ling1510/article/details/41988279