Java 报表Apache POI API与实现数据行分组折叠

官方地址:http://poi.apache.org/apidocs/

Java 报表Apache POI API与实现数据行分组折叠_第1张图片

Java 报表Apache POI API与实现数据行分组折叠_第2张图片

Apache POI - Javadocs

Apache POI Javadocs

可以在此处在线访问 Apache POI的最新(开发)版本的Javadoc ,或者 通过运行javadocs Ant任务从源代码检出构建。在 最新的(开发)的Javadoc正在每隔几个星期更新一次,所以可能会稍微滞后于最新的发展。

对于最新版本,最新稳定版本的Javadocs,每个家庭也可以在线浏览:

  • Apache POI 4.1.x Javadocs
  • Apache POI 4.0.x Javadocs
  • Apache POI 3.17 Javadocs

旧版本

对于Apache POI的每个版本,该版本的特定Javadoc随该版本一起提供。

Maven / Gradle / IDE用户可以从Maven Central(或您首选的Maven镜像)获取​​每个Apache POI jar的javadoc。这些可用于javadoc分类器,例如group:'org.apache.poi',name:'poi',version:'4.1.0',classifier:'javaodc'

如果您已下载二进制(bin)版本,则可以在/ docs / apidocs / 文件夹中找到下载中的Javadoc 。

如果您已下载源(src)版本,则需要构建自己的副本。运行javadocs ant任务以构建Javadoc,构建将告诉您最后的输出目录(它在POI版本之间略有不同)。

由POI开发人员

数据行分组折叠显示

请参看:sheet API

/**
     * 测试POI导出折叠行数据
     */
    @SuppressWarnings("rawtypes")
    @RequestMapping("/exportCollapsed.do")
    public void exportCollapsed(HttpServletRequest request, HttpServletResponse response) {
        //设置允许跨域访问
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods","POST");
        response.setHeader("Access-Control-Allow-Headers","x-requested-with,content-type");
        try {
            List> list =new ArrayList>();
            Map map=null;
            for (int i = 0; i <20; i++) {
                map=new HashMap();
                map.put("ID", i);
                map.put("PID", i==0?0:(i<5?1:i/5));
                map.put("NAME", "NAME"+i);
                map.put("DESC", "DESC"+i);
                list.add(map);
            }

            String[] showName = { "编号", "名称",  "信息描述", "父节点"  };
            List> dataList = new ArrayList>();
            List cellList = new ArrayList();
            if (list.size() > 0) {
                for (int i = 0,j=list.size(); i < j; i++) {
                    cellList = new ArrayList();
                    cellList.add(new Cell(((Map)list.get(i)).get("ID").toString()));
                    cellList.add(new Cell(((Map)list.get(i)).get("NAME").toString()));
                    cellList.add(new Cell(((Map)list.get(i)).get("DESC").toString()));
                    cellList.add(new Cell(((Map)list.get(i)).get("PID").toString()));
                    dataList.add(cellList);
                }
            }
            HSSFWorkbook workbook=ExportExcelUtil.createWorkbook(dataList, showName);
            HSSFSheet sheet = workbook.getSheet("sheet1");
            // 设置折叠参数
            sheet.groupRow(2, 8);
            sheet.groupRow(3, 4);
            sheet.groupRow(10, 15);
            sheet.setRowGroupCollapsed(3, true);
            sheet.setRowGroupCollapsed(10, true);
            String fileName = ExportExcelUtil.getFileName("行数据可折叠分组报表示例");
            ExportExcelUtil.workbook2InputStream(workbook,fileName,response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 注:POI支持多行折叠分组显示。导出文件中文名乱码问题:

// 解决中文乱码问题==有的windows依旧乱码=====华为服务器windows server 2016系统
fileName = URLEncoder.encode(fileName,"UTF-8");
fileName= new String(fileName.getBytes("gbk"), "iso8859-1");

Java 报表Apache POI API与实现数据行分组折叠_第3张图片

你可能感兴趣的:(Java)