解决如何使用layui导出Excel表数据

解决如何使用layui导出Excel表数据

1.前端页面html代码展示

    <button id="importData" class="layui-btn">
            <i class="layui-icon"></i>导入Excel
    </button>

2.前端页面js代码展示

<script type="text/javascript" src="${pageContext.request.contextPath }/statics/js/jquery-1.9.0.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/statics/frame/layui/layui.js"></script>
  <script type="text/javascript" src="${pageContext.request.contextPath }/statics/js/index.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/statics/js/excel.js"></script>
 <script type="text/javascript" src="${pageContext.request.contextPath }/statics/js/data.js"></script>

<script type="text/javascript">
 

 // layui方法
    layui.use(['table', 'form', 'layer', 'vip_table',"element", "laypage", "upload"], function () {

        // 操作对象
        var form = layui.form
                , table = layui.table
                , layer = layui.layer
                , vipTable = layui.vip_table
                , $ = layui.jquery;
                var element = layui.element;
                var laypage = layui.laypage;
                var upload = layui.upload;//主要是这个
         
  //导出excel
        form.on('submit(uploadImg)', function(data){
            loading = layer.load(1, {shade: [0.3, '#fff']});
            var $ = layui.jquery;
            var excel = layui.excel;
            $.ajax({
                url: '${pageContext.request.contextPath }/infoSheet/getTreeList',
                dataType: 'json',
                data: {
                    datas:JSON.stringify(data.field)
                },
                success: function(res) {
                    layer.close(loading);
                    layer.msg(res.msg);
                    layer.msg(res.msg,{icon:6,time:1000});
                    // 假如返回的 res.data 是需要导出的列表数据
                    console.log(res.data);//
                    // 1. 数组头部新增表头
                    res.data.unshift({infoName: '企业名称',industryTypeName:'行业类型',infoTypeName:'企业性质',areaName:'企业区域',infoGround:'企业地址',registCapital:'注册资本',
                    	infoPhone:'联系电话',infoPostbox:'公司邮箱',infoTime:'成立时间'});
                    // 3. 执行导出函数,系统会弹出弹框
                    excel.exportExcel({
                        sheet1: res.data
                    }, '企业信息.xlsx', 'xlsx');
                },
                error:function(res){
                    layer.close(loading);
                    layer.msg(res.msg);
                    layer.msg(res.msg,{icon:5,time:1000});
                }
            });
        });
    }); 
  })
 
</script>
       

3.java后台代码

  //导出excel表
	     @ResponseBody
	     @RequestMapping("/getTreeList")
	     public Object getList(HttpServletRequest request, Model model) {

	  
	         HashMap<Object, Object> map = new HashMap<Object, Object>();

	         try {
	             List<InfoSheet> mList = new ArrayList<InfoSheet>();
	             Integer count = infoSheetService.getCount(map);

	             List<InfoSheetEntity> list = new ArrayList<InfoSheetEntity>();
	             if (count > 0) {
	                 //查询所有数据
	                 mList = infoSheetService.getSelective(map);
	                 for (InfoSheet infoSheet : mList) {
	                     //自定义一个新实体类,定义好要导出来的字段,把遍历出来的数据存放到一个新的list,因为会出现关联表的数据
	                	 InfoSheetEntity infoSheetEntity = new InfoSheetEntity();
	                	// infoSheetEntity.setInfoId(infoSheet.getInfoId());//企业ID
	                	 infoSheetEntity.setInfoName(infoSheet.getInfoName());//企业名称
	                	 //判断如果行业类型是null,就set " - "
	                	 if (infoSheet.getIndustryType()==null){
	                		 infoSheetEntity.setIndustryTypeName("-");
	                     }else {
		                	 infoSheetEntity.setIndustryTypeName(infoSheet.getIndustryType().getIndustryTypeName());//行业类型

	                     }
	                	 //判断如果企业性质是null,就set " - "
	                	 if (infoSheet.getInfoType()==null){
	                		 infoSheetEntity.setInfoTypeName("-");
	                     }else {
		                	 infoSheetEntity.setInfoTypeName(infoSheet.getInfoType().getInfoTypeName());//企业性质

	                     }
	                	 //判断如果企业性质是null,就set " - "
	                	 if (infoSheet.getArea()==null){
	                		
	                		 infoSheetEntity.setAreaName("-");
	                     }else {
		                	 //企业地区
                            infoSheetEntity.setAreaName(infoSheet.getArea().getAreaName());
	                     }
	                	 

	                	 infoSheetEntity.setInfoGround(infoSheet.getInfoGround());//企业地址
	                	 infoSheetEntity.setRegistCapital(infoSheet.getRegistCapital());//注册资本
	                	 infoSheetEntity.setInfoPhone(infoSheet.getInfoPhone());//联系电话
	                	 infoSheetEntity.setInfoPostbox(infoSheet.getInfoPostbox());//公司邮箱
	                	
	                	 infoSheetEntity.setInfoTime(infoSheet.getInfoTime());//成立时间
	                	 
	                	
	                	 
	                	 list.add(infoSheetEntity);
	                	 
	                	
	                     //时间格式可能不对,备用
//	                 DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//	                 String time = format.format(sellDealEntity.getSdTime());
	                     //根据类型 set 对应的值
	                     //switchType(sellDealEntity,sellDeal);
	                     //sellDeal.setSdWater(sellDealEntity.getSdWater());
	                     //判断如果订单是null,就set " - "
	                    
	                 }
	             }

	             map.put("code", 0);
	             map.put("msg", "导出成功");
	             map.put("count", count);
	             map.put("data", list);
	         }catch (Exception e){
	             map.put("code", 1);
	             map.put("msg", "导出失败,请稍后重试!");
	         }


	         return JSONObject.toJSON(map);
	     }
	     

4.感谢你的浏览访问

工作几年,略有心得,然很少整理成文,平常工作中浏览了不少道友的好文章,受益良多。
顾也开始写一些文章, 希望能与各位道友分享进步 !!!!
如果有用,欢迎各位点赞评论,若有不足,亦可指正!!!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曦月合一

你的鼓励是我们前进的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值