若依框架学习二

导出

实现导出功能,添加导出模块,首先确定导出数据实体,然后对controller中导出模块进行编写,在相应前端html上添加键值,在js上确定其导出Url。

前端html、js编写

在前端中添加按钮

<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:text:export">
                <i class="fa fa-download"></i> 导出
            </a>

在js那里声明Url

exportUrl: prefix+"/export",

后端实体、controller编写

首先选择确定导出的数据实体,并对实体数据中添加@Excel(name=“xxx”)对于不同的数据类型使用不同的cellType

@Excel(name="xxx")

在这里插入图片描述
编写controller里面的导出模块

// An highlighted block
@Log(title = "便签导出", businessType = BusinessType.EXPORT)
    @RequiresPermissions("system:text:export")
    @PostMapping("/export")
    @ResponseBody
    public AjaxResult export(Text text)
    {
        List<Text> list = textService.selectTextList(text);
        ExcelUtil<Text> util = new ExcelUtil<Text>(Text.class);
        return util.exportExcel(list, "便签数据");
    }

在这里插入图片描述

导入

前端

首先需要在html上添加该功能的按钮

<a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:text:import">
                <i class="fa fa-upload"></i>导入
            </a>

在js板块上写url地址

importUrl:prefix+"/importdata",
importTemplateUrl:prefix+"/importTemplate",

在下面直接添加导入模板

<!-- 导入区域 -->
<script id="importTpl" type="text/template">
    <form enctype="multipart/form-data" class="mt20 mb10">
        <div class="col-xs-offset-1">
            <input type="file" id="file" name="file"/>
            <div class="mt10 pt5">
                <input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据
                &nbsp;	<a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> 下载模板</a>
            </div>
            <font color="red" class="pull-left mt10">
                提示:仅允许导入“xls”或“xlsx”格式文件!
            </font>
        </div>
    </form>
</script>

后端

首先需要对controller里面定义import和importTemplate模块

    @Log(title = "标签管理", businessType = BusinessType.IMPORT)
    @RequiresPermissions("system:text:import")
    @PostMapping("/importdata")
    @ResponseBody
    public AjaxResult importdata(MultipartFile file, boolean updateSupport)throws Exception
    {
        ExcelUtil<Text> util=new ExcelUtil<Text>(Text.class);
        List<Text> textList=util.importExcel(file.getInputStream());
        String message = textService.importText(textList, updateSupport);
        return AjaxResult.success(message);
    }

    @RequiresPermissions("system:text:view")
    @GetMapping("/importTemplate")
    @ResponseBody
    public  AjaxResult importTemplate()
    {
        ExcelUtil<Text> util=new ExcelUtil<Text>(Text.class);
        return util.importTemplateExcel("便签数据");
    }

由于之前并未在textServiceIml中定义importText方法需要分别在ITextServic里面声明该方法并在textServiceIml里面改写此方法
在ITextService中添加该方法

 public String importText(List<Text> textList, Boolean isUpdateSupport);

在TextServiceIml中重写此方法

// An highlighted block
  @Override
    public String importText(List<Text> textList, Boolean isUpdateSupport)
  {
       if(StringUtils.isNull(textList)||textList.size()==0)
       {
           throw new BusinessException("导入标签数据不能为空");
       }
       int successNum=0;
       int failureNum=0;
       StringBuilder successMsg=new StringBuilder();
       StringBuilder failureMsg=new StringBuilder();
       String operName=ShiroUtils.getLoginName();
      if (failureNum > 0)
      {
          failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
          throw new BusinessException(failureMsg.toString());
      }
      else
      {
          successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
      }
       return successMsg.toString();
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值