java 实现导出到Excel 的数据按照树形结构排列

 

首先 讲下需求 

工作中遇到的,要求从一个功能中导出一堆会员数据,这些会员是有层级结构的,有推荐关系的那种

后台中是以树形展示的 但是导出到excel如何也实现这种树形排列呢 ?

发现POI可以实现这个功能 特别感谢谷歌  根据谷歌的知识汇总 的启发自己实现了这个功能  支持无线层级的树形结构



import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.sl.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress;

import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.util.Calendar;
import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.struts2.ServletActionContext;

/**
 * @author zqb
 * @version 1.0.0
 * @ClassName ExcelUtils.java
 * @Description TODO excel工具类 主要功能是 合并单元格功能的支持
 * @createTime 2020年11月16日 10:35:00
 */
public class ExcelUtils {
    /**
     * @Description: 
     * @Param: level 总层级 filePathName要导出得道文件名称
     * @return: 
     * @Author: Mr.zqb
     * @Date: 2021/1/22
     */
    public  static  void  write(ShopTreeNode tree,int level, String filePathName) {
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("Tree");
       // writeHelp(0, 1, tree, sheet);
        int mergerNum=createHierarchy(sheet,tree,1,0,level);

        //System.out.println("mergerNum:" +mergerNum);
        XSSFCell cell = null;


        XSSFRow row = null;
       // HSSFCell cell = null;

        // 在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
        row= sheet.createRow(0);
        // 创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
        cell = row.createCell(0);
        // 合并单元格CellRangeAddress构造参数依次表示起始
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值