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. jquery.timers使用说明

    jQuery Timers提供了三个函式 1. everyTime(时间间隔, [定时器名称], 函式名称, [次数限制], [等待函式程序完成])2. oneTime(时间间隔, [定时器名称],  ...

  2. UICollectionViewFlowLayout使用示例

    UICollectionViewFlowLayout使用示例 效果 源码 https://github.com/YouXianMing/iOS-Project-Examples // // ViewC ...

  3. ImageView和onTouchListener实现,点击查看图片细节

    这是来自疯狂android讲义上的例子,其实没啥意思.就是用监听器获取到手指的坐标,然后根据这个坐标开始绘制一个图片.(这里的绘制方式有些问题,所以凑合看看吧.) 首先,还是布局文件(两个ImageV ...

  4. C#零基础入门08:代码规范

    一:前言 没有规矩,不成方圆.在代码的世界中,尤其这样.作为程序员,我们不想让我们的代码写出去之后被人耻笑:看,连个换行都换的这么不专业.作为开发主管,我们则不想我们的组员写出来的代码各类风格都有,五 ...

  5. JavaScript 中的异常处理

    考虑到 JS 中的错误可比服务器端的代码产生的错误要多得多,并且还难以发现及修正,所以 JS 代码必须有异常处理以及全局一场处理. try { //这段代码从上往下运行,其中任何一个语句抛出异常该代码 ...

  6. HTML5 本地文件操作之FileSystemAPI整理(二)

    一.文件目录操作 1.DirectoryEntry对象 属性: 1.isFile: 操作对象的是否为文件,DirectoryEntry对象固定其值为false 2.isDirectory: 操作对象是 ...

  7. LaTeX技巧22:LaTeX文档中的参考文献初级

    用 LaTeX 处理文档, 经常就要书写参考文献, 本篇就是介绍如何在 LaTeX 中使用参考文献, 注意这里讲的是LaTeX默认的 thebibliography 环境, 如果要了解 LaTeX 中 ...

  8. ArcEngine C++ 10 程序的运行环境,ArcEngine RT的授权

    以前我一直以为 必须安装 Arcgis Desktop才可以授权,发现我错了,原来是这个样子的. 一.安装License manager,并授权许可server.txt 当然这个license也可以安 ...

  9. QT中文乱码与国际化支持

      QT国际化支持 Qt内部采用的全Unicode编码,这从根本上保证了多国语界面实现的正确性和便捷性.Qt本身提供的linguist工具,用来实现翻译过程十分方便.MFC中利用资源DLL切换资源,或 ...

  10. xenapp 6.5 客户端插件第一次安装总是跳到官网

    部署完xenapp6.5后,在没有安装插件的客户端登录时,会出现“下载客户端插件”界面 其实网上已经有很多解决方案,大同小已,只是不知道为什么不适合我安装的版本而已.我安装时最新的版本xenapp 6 ...