关于使用JavaPOI 导出Excel多级联动的一些方法

本文档详细介绍了如何使用JavaPOI库导出带有多级联动下拉选项的Excel模板。通过HSSF和XSSF的对比、数据规则设置、以及实例分享,阐述了数据有效性设置和避免数据超出Excel长度限制的方法。特别提醒,当数据量大时,应采用引用sheet数据的方式避免文件错误。
摘要由CSDN通过智能技术生成

关于使用JavaPOI 导出Excel多级联动

0.记录原因

最近有个需求是需要导出Excel模板,里面有涉及到某些字段只能做下拉选择,有单个下拉也有多级联动的。写了好久,在网上也查了很多资料,但是感觉不是很全面,所以走了很多弯路。由此,我整理了《关于使用JavaPOI导出Excel多级联动》的这份文档,和大家分享。

1.POI中的HSSF和XSSF的介绍

关于POI的介绍我就不多说了,大家查下API(http://poi.apache.org/apidocs/dev/org/apache/poi ),我就只说一下HSSF和XSSF:
HSSF主要是支持Excel2007版本之前的类,XSSF主要是支持Excel2007版本之后的类,自己感觉区别不大,但是在使用的时候会有一些细微的差别,后面会说到。

2.中间具体的一些方法的介绍

注:因为考虑到可能存在超过Excel数据规则长度的问题,所以我都采用的是引用sheet数据的方法。

  1. 创建WorkBook
    XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
  2. 创建Sheet页
    XSSFSheet xssfSheet = xssfWorkbook.createSheet(sheetName);
    xssfWorkbook.setSheetHidden(xssfWorkbook.getSheetIndex(sheetName), true);
    //sheetName为String类型,就是一个名字。
    //setSheetHidden的作用是设置sheet是否隐藏。 true:隐藏,false:显示
  3. 创建Row
    XSSFRow xssfRow = xssfSheet.createRow(0);
    //0代表创建第一行,Excel中行计数和列计数都是从0开始。
  4. 创建当前行的列
    XSSFCell xssfCell = xssfRow .createCell(0);
    //0代表创建第一列即第A列
    xssfCell .setCellValue();
    //为当前行的当前列设置值
  5. 设置数据规则(是应该这么说?)
    Name name = xssfWorkbook .createName();
    name .setNameName(“xx”);//定义一个名字
    name .setRefersToFormula(sheetName+ " !$A 1 : 1: 1:A " + 参 数 ( i n t 类 型 ) ) ; / / s e t R e f e r s T o F o r m u l a 这 个 方 法 的 作 用 是 将 我 们 定 义 的 这 个 名 字 跟 我 指 定 的 数 据 进 行 对 应 , 例 如 s h e e t N a m e
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值