首先在zhengjiao.html中加入 这个导出到excel的按钮。

然后去写对应的js,这个excel函数要做什么呢?其实就是提取页面生成的结果,然后给到后台,后台再写入到excel中,前端再配合去自动下载到使用者电脑即可。

提取方式有几种:

  1. 提取dom里的实际值。 把这些输入框都统计好。

  2. 直接提取运行后生成的那个二维数组。

  3. 直接复制运行功能的代码,进入后台后重新运行,并把结果变成excel而不是返回给前端,这个好处是简单,并且无需先运行。

按照已有的方法,选第三种。简单有效:所以代码完全复制即可,但是需要改动给到后端的url 和 接受返回值的动作函数。

代码如下:

{#    导出excel    #}
function excel() {var keys = document.getElementsByName('keys');var values = document.getElementsByName('values');var end_keys = [];var end_values = [];for (var i=0; i<keys.length; i++) {if(values[i].value !== '') {end_keys.push(keys[i].value);end_values.push(values[i].value);}}$.get('/zhengjiao_excel/', {"end_keys": end_keys.toString(),"end_values": end_values.toString()}, function (ret) {})
}

添加映射:

urls.py:

url(r'^zhengjiao_excel/$', views_tools.zhengjiao_excel),  # 正交工具导出excel

views.py

# 正交工具导出
def zhengjiao_excel(request):end_keys = request.GET['end_keys'].split(',')end_values = request.GET['end_values'].split(',')new_values = [i.split('/') for i in end_values]res = []for i in AllPairs(new_values):res.append(i)print(res)return HttpResponse('')

这部分代码和运行的是基本一样的。这里当然没有写完,得到的这个res就是一个二维数组,也就需要写到excel中的。

打印一下看看:

python写入excel有什么方法:

  1. 利用xlrd等

  2. 利用win32com.clent 等

xlrd 大家可以直接pip下载,尽量下载全面:

然后在views_tools.py头部进行导入:

代码临时如下:

# 正交工具导出
def zhengjiao_excel(request):end_keys = request.GET['end_keys'].split(',')end_values = request.GET['end_values'].split(',')new_values = [i.split('/') for i in end_values]res = []for i in AllPairs(new_values):res.append(i)# 先创建lr_book = xlwt.Workbook(encoding='utf-8')  # 创建excellr_sheet = lr_book.add_sheet('正交结果')  # 创建sheetfor i in range(len(res)):case_index = '用例' + str(i+1)  # 用例序号case = ','.join(res[i])  # 用例内容lr_sheet.write(i, 0, case_index)  # 写入,i为行,0为第1列lr_sheet.write(i, 1, case)  # 写入,i为行,1为第2列lr_book.save('tmp_zhengjiao.xls' + now())  # 保存return HttpResponse('')

完成后,运行一下看看:

项目根目录位置出现了这个xls表格,打开看看:

可以看到已经成功写入进来了。不过这里看着有点别扭,是因为没有把输入条件的名字 加进来。在前端js函数开始,把这个end_keys给传过来:

然后是python代码:

# 正交工具导出
def zhengjiao_excel(request):end_keys = request.GET['end_keys'].split(',')end_values = request.GET['end_values'].split(',')new_values = [i.split('/') for i in end_values]res = []for i in AllPairs(new_values):res.append(i)# 先创建lr_book = xlwt.Workbook(encoding='utf-8')  # 创建excellr_sheet = lr_book.add_sheet('正交结果')  # 创建sheetfor i in range(len(res)):case_index = '用例' + str(i+1)  # 用例序号hb = list(zip(end_keys, res[i]))  # 把key和value进行合并case = ','.join(':'.join(list(i)) for i in hb)  # 用例内容,进行格式化,便于阅读lr_sheet.write(i, 0, case_index)  # 写入,i为行,0为第1列lr_sheet.write(i, 1, case)  # 写入,i为行,1为第2列lr_book.save('tmp_zhengjiao.xls')  # 保存return HttpResponse('')

此时在运行看看结果:

这次就带上了 输入条件的名字了~

下载:

1.先把文件生成位置改到static中:

然后前端返回处理中只需要加一句:

这就是直接请求静态文件的方法~

然后重启服务,刷新页面测试:

可以看到成功下载了,然后去下载目录找到它并打开:

可以看到已经成功实现了功能。

接口测试平台-106: 番外-正交工具 excel导出相关推荐

  1. 接口测试平台-103: 番外-正交工具 简介+菜单

    1. 正交工具简介: 正交是黑盒测试用例中的一种设计方法,适用于多个输入条件,并且各个条件直接没有逻辑强关联的情况,而每个输入条件又可能有多种状态. 比如,word文档的打印功能:有 纸张大小,有单双 ...

  2. 【番外篇】Excel:一行转多行

    [番外篇]Excel:一行转多行 国庆开始卷,更新关于Excel的小技巧:一行转多行,也是在公司遇到关于一个Excel的案例,需求如下: 原数据: 需求:要将第二列数据转换为以下一一对应的多行 操作步 ...

  3. Java微信公众平台开发--番外篇,对GlobalConstants文件的补充

    转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...

  4. 番外8:ADS导出DWG文件并交给工厂制板

    番外8:ADS导出DWG文件并交给工厂制板 (功率放大器板子和散热器) 将ADS源文件导出PCB与散热器文件(功率放大器) 导出文件并预处理 打开制作好的版图文件,在原有基础上打好散热孔和固定孔,散热 ...

  5. 在Unity上编写一个小工具--Excel导出Json

    这是个Excel导出Json的工具类,需要放进Editor文件夹里,之后就可以在菜单上点击导出了 这个工具运行需要一个插件----NPOI,这个是用来读取excel文件的,这个插件的dll文件可以去网 ...

  6. 从零开始打造云端AI管理调度平台(番外篇_2)视频播放器

    本次更新主要更新一个HTML5视频播放器,用于在内容库当中的视频查看以及后续的智能处理结果查看. 视频播放一定要采用流式传输 为什么在文章刚开头我就要强调这一点. 因为很多新手小白在创建video标签 ...

  7. 【番外】利用Excel表格绘制数据透视图

    我们还是利用统计回归那一讲里边用到的数据. 全选之后按照下图选择数据透视表,然后直接点击确定. 单项数据绘图 我们随便拿"配方"这一项来举例,把"配方"拖入右下 ...

  8. MongoDB 教程番外篇之管理工具: Rockmongo

    RockMongo是PHP5写的一个MongoDB管理工具. 通过 Rockmongo 你可以管理 MongoDB服务,数据库,集合,文档,索引等等. 它提供了非常人性化的操作.类似 phpMyAdm ...

  9. 系统工程(SE)学习笔记(番外篇之一)——Capella使用体会兼谈SE工具

    系统工程(SE)学习笔记(番外篇之一)--Capella使用体会兼谈SE工具 零.Capella简介 壹. Capella的优势 贰.Capella的缺点 叁. 生态环境 肆. 总结 说到SE,就不能 ...

最新文章

  1. oracle查看字典结构体,Oracle数据字典的实操
  2. ubuntu14.04 下安装jdk1.8
  3. linux设置用户密码、查看linux用户信息、root用户管理普通用户(passwd命令使用)
  4. Python日志记录:在配置文件中指定日志格式化程序的转换器属性
  5. 成为Java流大师–第5部分:将联接的数据库表转换为流
  6. CentOS 7 / RHEL 7 systemd 指令
  7. 前端学习(1668):前端系列实战课程之限制范围拖拽思路
  8. linux安全 4a标准_Linux的未来,提高安全性的开放标准等等
  9. 《spring-boot学习》-01-初体验
  10. Liferay7 BPM门户开发之10: 通用流程实现从Servlet到Portlet(Part1)
  11. 云计算机室怎么样映射d 盘,云服务器磁盘如何映射到本地磁盘
  12. PC端 二维码/条形码扫描器1.1-支持截图+摄像头+本地图片+扫描枪识别
  13. android逆向 网易,Android逆向——网易云音乐排行榜api(上)
  14. geotoolkit 测井曲线显示时间、深度双刻度
  15. pick out.php,pick_out.php
  16. flowable 中文文档
  17. 树莓派实验室python人脸识别_使用树莓派进行简易人脸识别
  18. 2014一年开发技术资料收藏整理(一)
  19. C语言版桌球游戏台球游戏源代码,含完整程序设计文档及答辩PPT,含可执行文件
  20. 读《平凡的世界》有感

热门文章

  1. node.js安装后输入“node -v”提示‘node‘ 不是内部或外部命令,也不是可运行的程序的解决方法
  2. 分区格式化大于2 TiB磁盘
  3. 1、snaker笔记
  4. 【图像加密】正交拉丁方+二维Arnold置乱图像加密【含GUI Matlab源码 813期】
  5. 【图像加密】基于matlab GUI正交拉丁方置乱算法图像加解密【含Matlab源码 182期】
  6. 【BZOJ】初级水题列表——献给那些想要进军BZOJ的OIers
  7. Spring @Order注解详解
  8. 易语言编程-远程封包拦截与发送技术
  9. 打印机服务Print Spooler启动后又自动关闭的解决办法
  10. 现实迷途 第三十章 若即若离