本文实例讲述了Python实现将sqlite数据库导出转成Excel(xls)表的方法。分享给大家供大家参考,具体如下:
1. 假设已经安装带有sliqte 库的Python环境
我的是Python2.5
2. 下载 python xls 写操作包(xlwt)并安装
下载地址: http://pypi.python.org/pypi/xlwt
3. 下面就是代码(db2xls.py):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import sqlite3 as sqlite from xlwt import * #MASTER_COLS = ['rowid', 'type','name','tbl_name', 'rootpage','sql'] def sqlite_get_col_names(cur, table): query = 'select * from %s' % table cur.execute(query) return [ tuple [ 0 ] for tuple in cur.description] def sqlite_query(cur, table, col = '*' , where = ''): if where ! = '': query = 'select %s from %s where %s' % (col, table, where) else : query = 'select %s from %s ' % (col, table) cur.execute(query) return cur.fetchall() def sqlite_to_workbook(cur, table, workbook): ws = workbook.add_sheet(table) print 'create table %s.' % table for colx, heading in enumerate (sqlite_get_col_names(cur, table)): ws.write( 0 ,colx, heading) for rowy,row in enumerate (sqlite_query(cur, table)): for colx, text in enumerate (row): ws.write(rowy + 1 , colx, text) def main(dbpath): xlspath = dbpath[ 0 :dbpath.rfind( '.' )] + '.xls' print "<%s> --> <%s>" % (dbpath, xlspath) db = sqlite.connect(dbpath) cur = db.cursor() w = Workbook() for tbl_name in [row[ 0 ] for row in sqlite_query(cur, 'sqlite_master' , 'tbl_name' , 'type = \'table\'' )]: sqlite_to_workbook(cur,tbl_name, w) cur.close() db.close() if tbl_name ! = []: w.save(xlspath) if __name__ = = "__main__" : # arg == database path main(sys.argv[ 1 ]) |
4. 用法:
1
|
> python <path> / db2xls.py dbpath |
如果没错,会在数据库的目录下生成同名的xls文件
希望本文所述对大家Python程序设计有所帮助。