hanyeah 专注于AS

python将mdb数据库内容导出到excel

有一大堆access数据库文件(后缀名.mdb):

每个文件中有两个表:

结构相同,内容不同,为了查看对比方便,想要把数据库中的数据提取出来,放到一个excel文件中。

使用python实现。代码如下:

import win32com.client

def getrsdata(conn,tablename):
	print('table:',tablename)
	rs = win32com.client.Dispatch(r'ADODB.Recordset') 
	rs.Open('[' + tablename + ']', conn, 1, 3)

	rs.MoveFirst()   
	count = 0

	s=''
	while 1:   
		if rs.EOF:   
			break   
		else:   
			count = count + 1 
			if count==1:
				for x in range(rs.Fields.Count):
					s+=str(rs.Fields.Item(x).Name)+'\t'
				s+='\n'
			for x in range(rs.Fields.Count):
				s+=str(rs.Fields.Item(x).Value)+'\t'
			rs.MoveNext()
			s+='\n'
	rs.Close()
	print(tablename,count)
	return s
def getmdbdata(mdbname):
	print('mdb:',mdbname)
	conn = win32com.client.Dispatch(r'ADODB.Connection')   
	DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE='+mdbname+';'   
	conn.Open(DSN)
	s=''
	s+=mdbname+'\n'
	s+='Res'+'\n'
	s+=getrsdata(conn,'Res')
	s+='\n'
	s+='Rule'+'\n'
	s+=getrsdata(conn,'Rule')
	s+='\n'

	conn.Close()
	return s

s=''
for i in range(25):
	print('i:',i)
	s+=getmdbdata('Case'+str(i)+'.mdb')
	s+='\n\n'

#save
f = open("out.txt",'w')
f.write(s)
f.close()
print('complete')
input()

参考:http://www.xuyukun.com/python-use-access%E6%95%B0%E6%8D%AE%E5%BA%93/

http://www.zeuux.com/group/python/bbs/content/40733/



2016年3月3日 | 发布:hanyeah | 分类:python | 评论:0

发表留言: