Skip to main content

Headers

This chapter introduces how to read header data from Excel files.

Reading Header Data

Overview

You can obtain header information by overriding the invokeHead method in the listener.

Data Listener

@Slf4j
public class DemoHeadDataListener extends AnalysisEventListener<DemoData> {
@Override
public void invokeHead(Map<Integer, ReadCellData<?>> headMap, AnalysisContext context) {
log.info("Parsed header data: {}", JSON.toJSONString(headMap));
}

@Override
public void invoke(DemoData data, AnalysisContext context) {}

@Override
public void doAfterAllAnalysed(AnalysisContext context) {}
}

Code Example

@Test
public void headerRead() {
String fileName = "path/to/demo.xlsx";

FastExcel.read(fileName, DemoData.class, new DemoHeadDataListener())
.sheet()
.doRead();
}

Multi-Row Header Reading

Overview

Parse multi-row headers by setting the headRowNumber parameter or automatically based on header annotations in entity classes.

Code Example

@Test
public void complexHeaderRead() {
String fileName = "path/to/demo.xlsx";

FastExcel.read(fileName, DemoData.class, new DemoDataListener())
.sheet()
// Set the number of header rows, default is 1
.headRowNumber(2)
.doRead();
}

Header POJO

Overview

Set header POJO using the head() method.

Code Example

@Test
public void headerPojoRead() {
String fileName = "path/to/demo.xlsx";

FastExcel.read(fileName, new DemoDataListener())
.head(DemoData.class)
.sheet()
.doRead();
}