Mysql数据导出到excel-基于python
阅读本文大概需要 6分钟。
数据除了在测试平台显示,有时候也会习惯用excel以及邮件展示,那么我们可以在测试平台上加一个导出excel功能,方便操作,下面介绍主要代码以及逻辑。
使用操作数据库的pymysql库,以及操作excel的xlwt库,源码以及注释如下:
import pymysql
import xlwt
#连接数据库函数1
def get_conn():
coon = pymysql.connect(user='root',passwd='123456',db='autotest',port=3306,host=192.168.0.1,charset='utf8')
return coon
#执行查询数据函数2
def query_all(cur, sql, args):
cur.execute(sql, args)
return cur.fetchall()
#导出测试用例到export_to_excel_app_case.xls函数3
def read_mysql_to_xlsx2(filename):
list_table_head = ['用例编号', '用例名称', '测试结果', '测试人员', '测试时间', '项目']
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('data', cell_overwrite_ok=True)
for i in range(len(list_table_head)):
sheet.write(0,i, list_table_head[i])
conn = get_conn() #调用连接数据库函数
cur = conn.cursor()
sql = 'SELECT * from app_interface_appcase where app_interface_appcase.module = "testcase"' #查询用例sql语句
results = query_all(cur, sql, None) #调用函数,定义记录查询到的数据 conn.commit()
cur.close()
conn.close()
row = 1
for resultin results:
col = 0
print(type(result))
print(result)
foritem in result:
print(item)
sheet.write(row, col, item)
col += 1
row += 1
workbook.save(filename)
#导出测试用例步聚到export_to_excel_app_casestep函数4
def read_mysql_to_xlsx(filename):
list_table_head = ['用例编号', '用例描述', '测试步聚', '测试对象名称描述', '定位方式', '控件元素类型', '控件元素', '操作方法', '测试数据', '验证数据', '步聚测试结果', '测试时间', '用例测试结果', '测试人员'] #定义表头
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('data', cell_overwrite_ok=True)
for i in range(len(list_table_head)):
sheet.write(0,i, list_table_head[i])
conn = get_conn() #调用连接数据库函数
cur = conn.cursor()
sql = 'SELECTa.id,appcasename,appteststep,apptestobjname,appfindmethod,appevelementtype,appevelement,appoptmethod,apptestdata,appassertdata,b.apptestresult,b.create_time,a.apptestresult,apptesterfrom app_interface_appcase as a,app_interface_appcasestep as b wherea.id=b.Appcase_id and module="testcase"' #查询用例及步聚数据
results = query_all(cur, sql, None) #调用函数,定义记录查询到的数据
conn.commit()
cur.close()
conn.close()
row = 1
for result in results: #把结果循环写入到sheet
col = 0
print(type(result))
print(result)
for item in result:
print(item)
sheet.write(row, col, item)
col += 1
row += 1
workbook.save(filename) #保存到excel文件
if __name__ == '__main__':
#调用导出测试用例函数
read_mysql_to_xlsx2('export_to_excel_app_case.xls')
#调用导出用例步聚函数
read_mysql_to_xlsx('export_to_excel_app_casestep.xls')
导出excel数据如下:
代码运行演示视频:
看完是不是觉得so easy呢
Mysql数据导出到excel-基于python的更多相关文章
- MySQL数据导出为Excel, json,sql等格式
MySQL数据经常要导出为Excel, json,sql等格式,通过步骤都很多,麻烦,现在通过Treesoft可以方便的导出你要的数据格式. 1.在线执行SQL,在数据列表中有相应按钮,方便的将数据导 ...
- PHP实现MySQL数据导出为EXCEL(CSV格式)
<?php // 输出Excel文件头,可把user.csv换成你要的文件名 header('Content-Type: application/vnd.ms-excel'); header(' ...
- mysql数据导出为excel文件
select * from xi_table into outfile ’d:test.xls’
- MySQL要导出成excel的方法
MySQL 要导出成 excel 文件很简单,执行类似这样的命令: select * from 某个表 into outfile 'd:/文件名.xls'; 上述命令你在服务器上执行,就导在 ...
- Java利用Apache POI将数据库数据导出为excel
将数据库中的数据导出为excel文件,供其他人查看 public class POITest { public static void main(String[] args) { POITest te ...
- tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
#tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', ...
- 用node.js写一个简单爬虫,并将数据导出为 excel 文件
引子 最近折腾node,最开始像无头苍蝇一样到处找资料,然而多数没什么卵用,都在瞎比比.在一阵瞎搞后,我来分享一下初步学习node的三个过程: 1 撸一遍NODE入门,对其有个基本的了解: 2 撸一遍 ...
- 使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!
一.需求 我们会遇到开发任务: 经理:小王,你来做一下把数据库里的数据导出到Excel中,一个表是一个sheet,不要一个表一个Excel. 小王:好的,经理.(内心一脸懵逼) 二.前期准备 首先我们 ...
- 学习笔记 DataGridView数据导出为Excel
DataGridView数据导出为Excel 怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...
随机推荐
- build模式入门,build模式理解(转载)
问:为何要用? 普通做法: 1.创建pojo public class Person { private String name; private int age; private double he ...
- Linux学习(二) --- 常用命令
[TOC] 一.常用命令 1.目录 cd切换 cd 路径 切换到指定路径 cd .. 上一级 mkdir:创建目录 mkdir 目录名 pwd:查看 2.查看 ll命令:查询目录内容 ll 查看当前( ...
- Adaboost算法及其代码实现
. . Adaboost算法及其代码实现 算法概述 AdaBoost(adaptive boosting),即自适应提升算法. Boosting 是一类算法的总称,这类算法的特点是通过训练若干弱分类器 ...
- Java利用DES/3DES/AES这三种算法分别实现对称加密
转载地址:http://blog.csdn.net/smartbetter/article/details/54017759 有两句话是这么说的: 1)算法和数据结构就是编程的一个重要部分,你若失掉了 ...
- java多线程高并发的学习
1. 计算机系统 使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行:当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了. 缓 ...
- Qt OpenCV 在界面显示图片 通过Lable方式 和GraphicsView 方式
1. 通过lable方式打开图片. 代码如下: void MainWindow::on_pushButton_clicked() { Mat srcImage,gray_image,srcImage1 ...
- /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/bin/java: No such file or directory
在linux使用两个tomcat的时候, 执行./shutdown.sh的时候, 遇到了这个问题 这个可怎么办呢 原来是我的java下面的文件目录是/java-1.8.0-openjdk-1.8.0. ...
- 解决 WinForm 重写 CreateParams 隐藏窗口以后的显示问题
WinForm 启动时隐藏窗体最简单有效的办法是重写 CreateParams protected override CreateParams CreateParams { get { base.Vi ...
- js中使用EL表达式总结
1.js中使用el表达式要加双引号或单引号:'${list}' 2.js变量获取el表达式中的对象:不能直接获取,直接获取得到的是该对象的toString值. 有两种方法:一:el中直接写对象的属性v ...
- Perl: print @globbing."\n"; 和 print @globbing; 不一样,一个已经转换为数组元素个数了
48 print @globbing."\n"; 输出: 3