import sqlite3 as sqlite
from xlwt import *
import sys def sqlite_get_col_names(cur, select_sql):
cur.execute(select_sql)
return [tuple[0] for tuple in cur.description] def query_by_sql(cur, select_sql):
cur.execute(select_sql)
return cur.fetchall() def sqlite_to_workbook_with_head(cur, table, select_sql, workbook):
ws = workbook.add_sheet(table)
print('create table %s.' % table)
#enumerate针对一个可迭代对象,生成的是序号加上内容 for colx, heading in enumerate(sqlite_get_col_names(cur, select_sql)):
ws.write(0, colx, heading) #在第1行的colx列写上头部信息 for rowy, row in enumerate(query_by_sql(cur, select_sql)):
for colx, text in enumerate(row): #row是一行的内容
ws.write(rowy + 1, colx, text) #在rowy+1行,colx写入数据库内容text def sqlite_to_workbook_without_head(cur, table, select_sql, workbook):
ws = workbook.add_sheet(table) for rowy, row in enumerate(query_by_sql(cur, select_sql)):
for colx, text in enumerate(row): #row是一行的内容
ws.write(rowy, colx, text) #在rowy行,colx写入数据库内容text def dump_db_to_excel(cur, workbook):
for tbl_name in [row[0] for row in query_by_sql(cur, "select tbl_name FROM sqlite_master where type = 'table'")]:
select_sql = "select * from '%s'" % tbl_name
sqlite_to_workbook_with_head(cur, tbl_name, select_sql, workbook) def main(dbpath):
xlspath = dbpath[:dbpath.rfind('.')] + '.xls'
print("<%s> --> <%s>" % (dbpath, xlspath)) db = sqlite.connect(dbpath)
cur = db.cursor()
w = Workbook() dump_db_to_excel(cur, w) #把所有的db中的表数据导出到excel中,每个table对应一个sheet页 #按照条件查询数据并导出到excel中
#sheet_name = '测试'
#query_data_sql = "select 100-id as used from cpu_info where cpu_name = '%Cpu0'"
#sqlite_to_workbook_without_head(cur, sheet_name, query_data_sql, w) cur.close()
db.close() w.save(xlspath) if __name__ == "__main__":
# arg == database path
main(sys.argv[1])

python从sqlite中提取数据到excel的更多相关文章

  1. Kettle实现从数据库中提取数据到Excel

    因为有个日常提数,工作日每天都要从数据库中提取数据,转换为excel,再以邮件的形式发给用户. 刚好近期同事在研究使用kettle自动提数且完成邮件的发送,觉得很实用又挺有意思的就学了一下这个技能~ ...

  2. 利用python将mysql中的数据导入excel

    Python对Excel的读写主要有xlrd.xlwt.xlutils.openpyxl.xlsxwriter几种. 如下分别利用xlwt和openpyxl将mysql数据库中查询的数据保存到exce ...

  3. Python从json中提取数据

    #json string:s = json.loads('{"name":"test", "type":{"name": ...

  4. 使用Python从PDF文件中提取数据

    前言 数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据.然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都应该了 ...

  5. python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图

    python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...

  6. [数据科学] 从csv, xls文件中提取数据

    在python语言中,用丰富的函数库来从文件中提取数据,这篇博客讲解怎么从csv, xls文件中得到想要的数据. 点击下载数据文件http://seanlahman.com/files/databas ...

  7. 如何使用JMeter从文件中提取数据

    在性能测试方面,重用响应数据至关重要.几乎(如果不是全部!)负载测试场景假设您: 从先前的响应中提取有趣的方面,并在下一个请求中重用它们(也称为相关) 确保实际响应符合预期(又称断言) 因此,如果您是 ...

  8. 将Oracle数据库中的数据写入Excel

    将Oracle数据库中的数据写入Excel 1.准备工作 Oracle数据库"TBYZB_FIELD_PRESSURE"表中数据如图: Excel模板(201512.xls): 2 ...

  9. C#读取Excel表格数据到DataGridView中和导出DataGridView中的数据到Excel

    其实想在datagridview中显示excel表格中的数据跟读取数据库中的数据没什么差别,只不过是创建数据库连接的时候连接字段稍有差别. private void btnShow_Click(obj ...

随机推荐

  1. 删除数据库字段一样的row, 并增加唯一索引

    DELETE FROM `groups` WHERE name IN (select a.name from ( SELECT name FROM `groups` GROUP BY name HAV ...

  2. ClipDrawable属性介绍

    ClipDrawable代表从其它位图上截取一个"图片片段",XML中的根元素为<clip.../>,截取的方向由clipOrientation控制 <?xml ...

  3. Docker存出载入镜像

    镜像的存出和载入 如果你的生产环境不能连通互联网,而你又希望从互联网上获取镜像.你就需要借助 docker save命令,可以将镜像导出为 tar 文件.使用 docker load 命令,可以将ta ...

  4. Eclipse国内镜像源配置方法

    Table of Contents 我们在国内从官网下载Eclipse以及插件非常慢,那么,有没有方法变快呢? 有,那就是使用国内的公开镜像源替换官方源. 1 下载Eclipse 首先,我们看一个链接 ...

  5. Spring Data JPA @Column 注解无效 打出的语句有下划线

    最近再写一个Restful API的小例子,遇到这样一个问题,在Spring Boot 下使用CrudRepository,总是提示如下错误: Caused by: java.sql.SQLSynta ...

  6. c#中的数组、ArrayList、List区别【转】

    首先说明C#中的Array类:Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义.Array 类提供了各种用于数组的属性和方法.关于Array类的一些属性及方法详见博文:C ...

  7. Centos7下yum安装配置nginx与php

    实现LNMP环境搭建. 开始安装Nginx和PHP-FPM之前,首先卸载系统中以前安装的Apache和PHP保证安装不会冲突.用root登录输入下面的命令: yum remve httpd* php* ...

  8. mysql主从备份及原理分析

    一.mysql主从备份(复制)的基本原理mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更 ...

  9. nginx高效学习方法

    nginx高效学习方法 nginx做为一个高性能的web服务器,相对于apache等服务器来说它的代码量并不是非常庞大,反而非常精简.看过nginx源码的人都知道,nginx将“一切皆为模块”和“所有 ...

  10. JAVA-找不到元素 'beans' 的声明

    问题: Tomcat启动时,spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseExceptio ...