Cannot get a STRING value from a NUMERIC cell

easyExcel 列合并 时,只能是String的进行合并,用数值型的会在最后一行错:Cannot get a STRING value from a NUMERIC cell

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        String oneHead = "***平台" + sdf.format(bo.getSendBeginDate()) + "至" + sdf.format(bo.getSendEndDate()) + "所有活动数据汇总表(" + bo.getOrgName() + ")";
        String sheetName = sdf.format(bo.getSendBeginDate()) + "至" + sdf.format(bo.getSendEndDate()) + "汇总";
        String twoHead = "统计区间:" + sdf.format(bo.getSendBeginDate()) + "-" + sdf.format(bo.getSendEndDate());
        List<vo> list = service.queryList(bo);

        //ExcelUtil.exportExcel(list, title, vo.class, response);普通导出
        String filename = ExcelUtil.encodingFilename(oneHead);
        FileUtils.setAttachmentResponseHeader(response, filename);
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");
        //需要合并的列
        int[] mergeColumeIndex = {0,1,15,16}; //券名称 列不合并 活动预算列要合并
        // 从第三行后开始合并
        int mergeRowIndex = 3;


//头的样式
        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
        // 背景设置为白色
        headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
        headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
        headWriteCellStyle.setBorderLeft(BorderStyle.THIN);//细实线
        headWriteCellStyle.setBorderTop(BorderStyle.THIN);
        headWriteCellStyle.setBorderRight(BorderStyle.THIN);
        headWriteCellStyle.setBorderBottom(BorderStyle.THIN);
        // 内容的策略
        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
        contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);//细实线
        contentWriteCellStyle.setBorderTop(BorderStyle.THIN);
        contentWriteCellStyle.setBorderRight(BorderStyle.THIN);
        contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);
        //设置 自动换行
        contentWriteCellStyle.setWrapped(true);
        //设置 垂直居中
        contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
        //设置 水平居中 (vo中有设置)
        //contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
         /*WriteFont contentWriteFont = new WriteFont();
            // 字体大小
            contentWriteFont.setFontHeightInPoints((short)20);
            contentWriteCellStyle.setWriteFont(contentWriteFont);*/

        // 这个策略是 头是头的样式 内容是内容的样式 其他的策略可以自己实现
        HorizontalCellStyleStrategy horizontalCellStyleStrategy =
            new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);


        //这里我指定列进行合计
        HashSet<Integer> indexSet = new HashSet<>();
        indexSet.add(7);
        indexSet.add(8);
        indexSet.add(9);
        indexSet.add(10);
        indexSet.add(11);
        indexSet.add(12);
        indexSet.add(14);
      
        vo activityCouponRptVoTol = ExcelUtil.sumCell(true, 0, indexSet, list, vo.class);

        list.add(activityCouponRptVoTol);
        EasyExcel.write(response.getOutputStream(), vo.class)
            //插入数据
            .sheet(sheetName)
            .registerWriteHandler(new ExcelTitleHandler(oneHead, twoHead))
            .registerWriteHandler(new ExcelMergeHandler(mergeRowIndex, mergeColumeIndex))
            .registerWriteHandler(new SimpleColumnWidthStyleStrategy(20)).registerWriteHandler(horizontalCellStyleStrategy)
            .doWrite(list);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值