Python实现将sqlite数据库导出转成Excel(xls)表的方法


Posted in Python onJuly 17, 2017

本文实例讲述了Python实现将sqlite数据库导出转成Excel(xls)表的方法。分享给大家供大家参考,具体如下:

1. 假设已经安装带有sliqte 库的Python环境

我的是Python2.5

2. 下载 python xls 写操作包(xlwt)并安装

下载地址: http://pypi.python.org/pypi/xlwt

3. 下面就是代码(db2xls.py):

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. 用法:

> python  <path>/db2xls.py  dbpath

如果没错,会在数据库的目录下生成同名的xls文件

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python使用PIL缩放网络图片并保存的方法
Apr 24 Python
Python抽象类的新写法
Jun 18 Python
Python学习教程之常用的内置函数大全
Jul 14 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
python pygame实现球球大作战
Nov 25 Python
基于Pycharm加载多个项目过程图解
Jan 19 Python
Tensorflow实现在训练好的模型上进行测试
Jan 20 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
python tkinter之 复选、文本、下拉的实现
Mar 04 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 Python
能让Python提速超40倍的神器Cython详解
Jun 24 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
Aug 23 Python
Python下实现的RSA加密/解密及签名/验证功能示例
Jul 17 #Python
Python 的类、继承和多态详解
Jul 16 #Python
PyQt 线程类 QThread使用详解
Jul 16 #Python
Pycharm技巧之代码跳转该如何回退
Jul 16 #Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 #Python
Python利用flask sqlalchemy实现分页效果
Aug 02 #Python
Python实现发送QQ邮件的封装
Jul 14 #Python
You might like
php获取mysql版本的几种方法小结
2008/03/25 PHP
php 输出双引号&quot;与单引号'的方法
2010/05/09 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
js显示时间 js显示最后修改时间
2013/01/02 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
法律专业应届生自荐信范文
2014/01/06 职场文书
初三学习决心书
2014/03/11 职场文书
股票投资建议书
2014/05/19 职场文书
励志演讲稿600字
2014/08/21 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
2015年领班工作总结
2015/04/29 职场文书
儿子满月酒致辞
2015/07/29 职场文书