Fork me on Gitee

TestLink在线Excel用例转换xml

Git仓库地址:【TestLink-SpringBoot使用EasyExcel和BootStrap FileInput上传Excel

项目功能

TestLink在线Excel用例转换xml
将符合用例模板的Excel测试用例,转换成xml,用于导入TestLink进行用例管理。

使用方法

  • 1、编写测试用例
  • 2、打开本项目http://localhost:8080 ,浏览选择文件,点击图标上的上传icon
  • 3、选择sheet名称
  • 4、点击点我转换按钮,后台处理好数据后,点击确定按钮,下载生成的xml文件。
  • 5、在tesklink中,导入生成的xml用例。

技术框架

SpringBoot使用EasyExcel和BootStrap FileInput上传Excel

后端
  • springboot
  • springmvc
  • easyexcel
  • jdom2
前端
  • jquery v1.12.4
  • Bootstrap v4.3.1
  • bootstrap-fileinput v5.0.1
  • jquery-confirm v3.3.0

遇到的坑

  • 1、使用fileinput插件,不显示中文

根据官网Demo,注意了css和js的引入顺序,并添加了“language: ‘zh’”的配置项,页面还是显示英文。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
HTML:
<input id="excel" name="file" class="file" type="file" placeholder="选择一个Excel文件">
JS:
$("#excel").fileinput({
language: 'zh',
maxFileCount: 1,
required: true,
uploadAsync: false,
allowedFileExtensions : ['xls','xlsx'],//允许的文件类型
enctype: 'multipart/form-data',
uploadUrl: server + '/testLink/uploadExcel',
showRemove:false,
showPreview : true, //是否显示预览
validateInitialCount:true,
overwriteInitial: true//是否在上传下一个文件的时候覆盖前一个
});

最终一篇博客中写到:删除class=”file” 即可。

  • 2、使用EasyExcel导入2003版本的xls文件,报错

根据报错提示,在MultipartFile.getInputStream()外层包装了BufferedInputStream,解决问题

1
EasyExcelFactory.getReader(new BufferedInputStream(excelFile.getInputStream())...
  • 3、fileinput插件不显示图标,其实是不显示bootstrap的图标

bootstrap4默认不支持图标,将bootstrap3的图标字体复制到项目中,并添加fonts.css,文件准备即可完成。
由于使用SpringBoot2.x,maven自动将字体文件忽略,如下修改pom.xml,图标正常展示。

1
2
3
4
5
6
7
8
9
10
11
12
13
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>eot</nonFilteredFileExtension>
<nonFilteredFileExtension>svg</nonFilteredFileExtension>
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
<nonFilteredFileExtension>woff</nonFilteredFileExtension>
<nonFilteredFileExtension>woff2</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
  • 4、下载xml文件

ajax不能下载文件,只要后台返回文件名,前台通过window.location.href = url或者form表单提交进行文件下载。

1
2
3
4
5
6
7
8
var $eleForm = $("<form method='get'></form>");

$eleForm.attr("action",url);

$(document.body).append($eleForm);

//提交表单,实现下载
$eleForm.submit();
感谢您发财的小手,我们一起进步
TEC-CHEN 微信支付

微信支付

TEC-CHEN 支付宝

支付宝

TEC-CHEN 微信-赞赏码

微信-赞赏码


-------------本文结束感谢您的阅读-------------
0%