首先在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. mysql隐藏用户名_系统默认的MySQL用户名消失的解决方法(修正版)
  2. 1.7. FreeBSD 初始化设置
  3. python中2个字典比较
  4. matlab simulnk笔记07——模块(接地模块group、终止模块terminal、信号合并mux与分解模块demux)
  5. 操作系统(李治军) L11内核级线程
  6. OpenCV阶段总结扩充。
  7. mybatis plus 插入生成id_Mybatis-Plus 3.3.0 发布,让你专注业务快速敏捷开发
  8. .NET Core应用程序的2种部署方式
  9. Win11任务栏不重叠怎么设置,Win11任务栏不重叠设置方法
  10. 定位Oops的具体代码行[zt]
  11. 数据保护:从“随意架构”到简单可控
  12. android-x86 下载地址
  13. 盘点web前端三大主流框架
  14. SPSS--Friedman检验步骤
  15. 1143 Lowest Common Ancestor (30分) 附测试点分析
  16. 计算机关闭系统默认共享,win10如何关闭默认共享_win10关闭默认共享的图文步骤...
  17. app上架vivo应用商店流程
  18. 2021最新外卖霸王餐小程序、H5、微信公众号版外系统源码|霸王餐美团/饿了么系统 粉丝裂变玩源码下载
  19. 关闭vscode中的源代码管理
  20. CRNN:文本序列识别

热门文章

  1. 胆汁酸-肠道菌群在肠道炎症和肿瘤生成中的互作
  2. 推荐系列论文九-Deep Image Ctr Model
  3. 物联网流量卡能用在手机上吗
  4. 什么是服务器?超详细
  5. UIWebView 读取pdf,word,excel
  6. 第11章 大数据技术与实践
  7. java寂静岭 攻略,《寂静岭:起源》全剧情攻略
  8. b样条和三次样条,二次与三次B样条曲线c 实现
  9. html怎么添加视频链接,微光如何添加视频链接
  10. 游戏数值策划经验篇:从多角度解读游戏经验值设计