Apache POI实现数据下拉框(HSSF和XSSF通用)

1.导入POI依赖

<!-- HSSF .xls -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.1</version>
</dependency>
<!-- XSSF .xlsx -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.1</version>
</dependency>

2.代码实现

public void test(){
	// Workbook wb = new HSSFWorkbook();
	Workbook wb = new XSSFWorkbook();
    Sheet sheet = wb.createSheet("sheet0");
    // 设置区域范围, 参数:firstRow,lastRow,firstCol,lastCol
    // 示例为第一个单元格
    CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(0, 0, 0, 0);
    DataValidationHelper dataValidationHelper = sheet.getDataValidationHelper();
    // 构造下拉框和数据
    DataValidationConstraint constraint = dataValidationHelper.createExplicitListConstraint(new String[]{"春", "夏", "秋", "冬"});
    // 绑定下拉框和区域
    DataValidation validation = dataValidationHelper.createValidation(constraint, cellRangeAddressList);
    // 为sheet添加验证
    sheet.addValidationData(validation);
    //wb.write(new FileOutputStream("D:\\test.xls"));
    wb.write(new FileOutputStream("D:\\test.xlsx"));
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Apache POI 实现 Excel 数据下载功能需要以下步骤: 1. 创建工作簿和工作表:使用 HSSFWorkbook 创建工作簿和 HSSFSheet 创建工作表。 2. 设置表头:使用 HSSFRow 创建表头行,使用 HSSFCell 创建表头单元格,设置单元格内容和样式。 3. 填充数据:使用 HSSFRow 创建数据行,使用 HSSFCell 创建数据单元格,设置单元格内容和样式。 4. 设置文件名和下载方式:使用 HttpServletResponse 设置 Content-Disposition 头部信息,指定文件名和下载方式。 5. 输出数据:使用 ServletOutputStream 输出 Excel 数据。 以下是示例代码: ```java // 创建工作簿和工作表 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("学生信息表"); // 设置表头 HSSFRow headerRow = sheet.createRow(0); HSSFCell cell = headerRow.createCell(0); cell.setCellValue("学生姓名"); cell.setCellStyle(headerStyle); cell = headerRow.createCell(1); cell.setCellValue("学号"); cell.setCellStyle(headerStyle); // 填充数据 for (int i = 0; i < studentList.size(); i++) { HSSFRow dataRow = sheet.createRow(i + 1); Student student = studentList.get(i); cell = dataRow.createCell(0); cell.setCellValue(student.getName()); cell.setCellStyle(dataStyle); cell = dataRow.createCell(1); cell.setCellValue(student.getNumber()); cell.setCellStyle(dataStyle); } // 设置文件名和下载方式 response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=student.xls"); // 输出数据 ServletOutputStream outputStream = response.getOutputStream(); workbook.write(outputStream); outputStream.flush(); outputStream.close(); ``` 其中,headerStyle 和 dataStyle 是 HSSFCellStyle 类型的表头样式和数据样式,可以根据需要自行定义。studentList 是从数据库或其他数据源中获取的学生信息列表。 以上是使用 Apache POI 实现 Excel 数据下载的基本步骤,您可以根据实际需求进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值