TestLink在线Excel用例转换xml
【原文链接】:https://blog.tecchen.tech ,博文同步发布到博客园。
由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容。
欢迎访问我的个人网站:https://www.tecchen.tech 。
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'”的配置项,页面还是显示英文。
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,解决问题
EasyExcelFactory.getReader(new BufferedInputStream(excelFile.getInputStream())...
- 3、fileinput插件不显示图标,其实是不显示bootstrap的图标
bootstrap4默认不支持图标,将bootstrap3的图标字体复制到项目中,并添加fonts.css,文件准备即可完成。
由于使用SpringBoot2.x,maven自动将字体文件忽略,如下修改pom.xml,图标正常展示。
<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表单提交进行文件下载。
var $eleForm = $("<form method='get'></form>");
$eleForm.attr("action",url);
$(document.body).append($eleForm);
//提交表单,实现下载
$eleForm.submit();