pythonスクリプトexcelとmysqlデータベーステーブルのインポートとエクスポートを実現
1819 ワード
Excelからmysqlデータベーステーブル(.xlsx形式のインポートのみをサポート):
mysqlデータベーステーブルからexcel(.xlsx形式のエクスポートのみをサポート):
PS:以上のスクリプトはlinuxに対して、テストプラットフォームはubuntu 14である.04
#!/usr/bin/env python
#coding=utf-8
import xlrd
import MySQLdb
# EXCEL
wb = xlrd.open_workbook('/×.xlsx')
sh = wb.sheet_by_index(0)
dfun=[]
nrows = sh.nrows #
ncols = sh.ncols #
fo=[]
fo.append(sh.row_values(0))
for i in range(1,nrows):
dfun.append(sh.row_values(i))
conn=MySQLdb.connect(host='localhost',user='root',passwd='××××××',db='db')
cursor=conn.cursor()
# table
cursor.execute("create table test4("+fo[0][0]+" varchar(100));")
# table
for i in range(1,ncols):
cursor.execute("alter table test4 add "+fo[0][i]+" varchar(100);")
val=''
for i in range(0,ncols):
val = val+'%s,'
print dfun
cursor.executemany("insert into resources_networkdevice values("+val[:-1]+");" ,dfun)
conn.commit()
mysqlデータベーステーブルからexcel(.xlsx形式のエクスポートのみをサポート):
#!/usr/bin/env python
#coding=utf-8
import xlwt
import MySQLdb
conn=MySQLdb.connect(host='localhost',user='root',passwd='××××',db='test')
cursor=conn.cursor()
count = cursor.execute('select * from test1')
print 'has %s record' % count
#
cursor.scroll(0,mode='absolute')
#
results = cursor.fetchall()
# ,print results
# MYSQL
fields = cursor.description
# EXCEL
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('test1',cell_overwrite_ok=True)
for ifs in range(0,len(fields)):
sheet.write(0,ifs,fields[ifs][0])
ics=1
jcs=0
for ics in range(1,len(results)+1):
for jcs in range(0,len(fields)):
sheet.write(ics,jcs,results[ics-1][jcs])
wbk.save('×××××/Desktop/test4.xlsx')
PS:以上のスクリプトはlinuxに対して、テストプラットフォームはubuntu 14である.04