加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

grails导出excel

发布时间:2020-12-14 17:09:35 所属栏目:大数据 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 /** * 构建excel * @param block 闭包,封装构建逻辑 */ def build(dataList,titleList,out,Closure block){ def wb = new HSSFWorkbook(); def sheet

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

 /**
     * 构建excel
     * @param block 闭包,封装构建逻辑
     */
    def build(dataList,titleList,out,Closure block){

        def wb = new HSSFWorkbook();
        def sheet = wb.createSheet("new sheet");
        def row
        def cell
        def style = wb.createCellStyle()
        def font   =   wb.createFont()
        font.setFontHeightInPoints((short)12)
        font.setFontName("宋体")
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD)
        style.setFont(font)
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER)
        style.setFillBackgroundColor(HSSFColor.ORANGE.index)
        row = sheet.createRow((short) 0);

        titleList.eachWithIndex{title,i ->
            cell = row.createCell((short) (i));
            cell.setCellStyle(style)
            cell.setCellValue(title);
        }
        
        //生成逻辑
        block.call(sheet,row)

        titleList.size().times{ i ->
            sheet.autoSizeColumn((short)i)
        }
        wb.write(out);
        out.close()
    }

 /**
     * 生成excel
     * @param dataList 数据列表,其中的元素是放入每行cell的数据
     * @param titleList 标题列表
     * @param out 
     */
    def genForList(List<List> dataList,List titleList,out){
        def block = { sheet,row ->
            dataList.eachWithIndex{ dataRow,i ->
                row = sheet.createRow((short) (i+1));
                dataRow.eachWithIndex{ data,j ->
                    row.createCell((short) (j)).setCellValue(data.toString())
                }
            }
        }
        build(dataList,block)
    }

    /**
     * 生成excel
     * @param dataList 数据列表,其中的元素是放入每行cell的数据
     * @param titleList 标题列表
     * @param out OutputStream
     */
    def genForMap(List<Map> dataList,i ->
                row = sheet.createRow((short) (i+1));
                dataRow.eachWithIndex{ k,v,j ->
                    row.createCell((short) (j)).setCellValue(v.toString())
                }
            }
        }
        build(dataList,block)
    }

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读