TestLink在线Excel用例转换xml

試著忘記壹切 提交于 2020-05-02 00:42:38

【原文链接】:https://blog.tecchen.tech ,博文同步发布到博客园。 由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容。 欢迎访问我的个人网站:https://www.tecchen.tech

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

项目功能

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

使用方法

技术框架

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();
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!