Excel导入(多sheet页,多表头)遇到表头重复的问题

springBoot EasyExcel–Excel导入(多sheet页,多表头)

在使用上面文章中的方法导入Excel时遇到了表头重复的情况
在这里插入图片描述

导致读取第二个部门信息时 会被第一个部门的数据覆盖掉
解决方式 对应的实体类注解改为下标即可完美解决

	//之前
	@ExcelProperty(value = {"表头1"})
    @ColumnWidth(20)
    private String studyUnitType;
    
    //修改之后
    @ExcelProperty(index = 6)
    @ColumnWidth(20)
    private String studyUnitType;
@ExcelProperty 合并行是Apache POI库中用于处理Excel文件的一个注解。它主要用于在生成Excel文件时,将个单元格合并成一个单元格,从而实现表格的美化和数据的组织。 @ExcelProperty 合并行的使用场景包括但不限于以下几个方面: 1. **表头合并**:将个列的表头合并成一个大的表头,方便阅读和理解。 2. **数据合并**:将相同类别的数据合并成一个单元格,避免重复和冗余。 3. **复杂表格**:在生成复杂表格时,通过合并行来组织数据,使表格更加清晰和易读。 以下是一个简单的示例,展示了如何在生成Excel文件时使用@ExcelProperty 合并行: ```java import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.io.FileOutputStream; import java.io.IOException; @SpringBootTest public class ExcelPropertyMergeTest { @Test public void testExcelPropertyMerge() throws IOException { Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("示例表格"); Row headerRow = sheet.createRow(0); headerRow.createCell(0).setCellValue("姓名"); headerRow.createCell(1).setCellValue("年龄"); headerRow.createCell(2).setCellValue("性别"); // 合并单元格 sheet.addMergedRegion(new org.apache.poi.ss.util.CellRangeAddress(0, 0, 0, 2)); Row dataRow1 = sheet.createRow(1); dataRow1.createCell(0).setCellValue("张三"); dataRow1.createCell(1).setCellValue("25"); dataRow1.createCell(2).setCellValue("男"); Row dataRow2 = sheet.createRow(2); dataRow2.createCell(0).setCellValue("李四"); dataRow2.createCell(1).setCellValue("30"); dataRow2.createCell(2).setCellValue("女"); // 合并单元格 sheet.addMergedRegion(new org.apache.poi.ss.util.CellRangeAddress(1, 2, 0, 0)); FileOutputStream fileOut = new FileOutputStream("示例表格.xlsx"); workbook.write(fileOut); fileOut.close(); workbook.close(); } } ``` 在这个示例中,我们创建了一个简单的Excel表格,并使用`addMergedRegion`方法将个单元格合并成一个单元格。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值