关键词搜索

源码搜索 ×
×

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

发布2019-09-18浏览2290次

详情内容

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

Apache POI - Javadocs

Apache POI Javadocs

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

对于最新版本,最新稳定版本的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

  1. /**
  2. * 测试POI导出折叠行数据
  3. */
  4. @SuppressWarnings("rawtypes")
  5. @RequestMapping("/exportCollapsed.do")
  6. public void exportCollapsed(HttpServletRequest request, HttpServletResponse response) {
  7. //设置允许跨域访问
  8. response.setHeader("Access-Control-Allow-Origin", "*");
  9. response.setHeader("Access-Control-Allow-Methods","POST");
  10. response.setHeader("Access-Control-Allow-Headers","x-requested-with,content-type");
  11. try {
  12. List<Map<String,Object>> list =new ArrayList<Map<String,Object>>();
  13. Map<String,Object> map=null;
  14. for (int i = 0; i <20; i++) {
  15. map=new HashMap<String, Object>();
  16. map.put("ID", i);
  17. map.put("PID", i==0?0:(i<5?1:i/5));
  18. map.put("NAME", "NAME"+i);
  19. map.put("DESC", "DESC"+i);
  20. list.add(map);
  21. }
  22. String[] showName = { "编号", "名称", "信息描述", "父节点" };
  23. List<List<Cell>> dataList = new ArrayList<List<Cell>>();
  24. List<Cell> cellList = new ArrayList<Cell>();
  25. if (list.size() > 0) {
  26. for (int i = 0,j=list.size(); i < j; i++) {
  27. cellList = new ArrayList<Cell>();
  28. cellList.add(new Cell(((Map)list.get(i)).get("ID").toString()));
  29. cellList.add(new Cell(((Map)list.get(i)).get("NAME").toString()));
  30. cellList.add(new Cell(((Map)list.get(i)).get("DESC").toString()));
  31. cellList.add(new Cell(((Map)list.get(i)).get("PID").toString()));
  32. dataList.add(cellList);
  33. }
  34. }
  35. HSSFWorkbook workbook=ExportExcelUtil.createWorkbook(dataList, showName);
  36. HSSFSheet sheet = workbook.getSheet("sheet1");
  37. // 设置折叠参数
  38. sheet.groupRow(2, 8);
  39. sheet.groupRow(3, 4);
  40. sheet.groupRow(10, 15);
  41. sheet.setRowGroupCollapsed(3, true);
  42. sheet.setRowGroupCollapsed(10, true);
  43. String fileName = ExportExcelUtil.getFileName("行数据可折叠分组报表示例");
  44. ExportExcelUtil.workbook2InputStream(workbook,fileName,response);
  45. } catch (Exception e) {
  46. e.printStackTrace();
  47. }
  48. }

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

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

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载