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 相关文章推荐
以Flask为例讲解Python的框架的使用方法
Apr 29 Python
常用python编程模板汇总
Feb 12 Python
Python和C/C++交互的几种方法总结
May 11 Python
python函数中return后的语句一定不会执行吗?
Jul 06 Python
Python中一些不为人知的基础技巧总结
May 19 Python
Python pandas实现excel工作表合并功能详解
Aug 29 Python
Django REST framework 单元测试实例解析
Nov 07 Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
Python接口开发实现步骤详解
Apr 26 Python
python装饰器代码深入讲解
Mar 01 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
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
js下获取div中的数据的原理分析
2010/04/07 Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
Three.js基础学习教程
2017/11/16 Javascript
使用async await 封装 axios的方法
2018/07/09 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
浅谈javascript如何获取文件后缀名
2020/08/07 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
详解Python编程中包的概念与管理
2015/10/16 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
应用服务器有那些
2012/01/19 面试题
物业管理大学生个人的自我评价
2013/10/10 职场文书
春风行动实施方案
2014/03/28 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
拆迁委托协议书
2014/09/15 职场文书
房地产财务经理岗位职责
2015/04/08 职场文书
音乐剧猫观后感
2015/06/04 职场文书
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL
MySQL transaction事务安全示例讲解
2022/06/21 MySQL
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL