Sheet
This chapter introduces how to configure Sheets to read data.
Reading Multiple Sheets
Overview
You can read multiple sheets from a spreadsheet file, but the same sheet cannot be read repeatedly.
Code Example
Reading All Sheets
@Test
public void readAllSheet() {
String fileName = "path/to/demo.xlsx";
FesodSheet.read(fileName, DemoData.class, new DemoDataListener()).doReadAll();
}
Reading Specific Sheets
Overview
You can read a specific sheet from a spreadsheet file, supporting specification by sheet index or name.
Note: Sheet names are limited to 31 characters in Microsoft Excel. When reading sheets by name, use the actual sheet name that appears in the Microsoft Excel file.
Code Example
@Test
public void readSingleSheet() {
String fileName = "path/to/demo.xlsx";
try (ExcelReader excelReader = FesodSheet.read(fileName).build()) {
// Sheet index
ReadSheet sheet1 = FesodSheet.readSheet(0).head(DemoData.class)
.registerReadListener(new DemoDataListener()).build();
// Sheet name
ReadSheet sheet2 = FesodSheet.readSheet("Sheet2").head(DemoData.class)
.registerReadListener(new DemoDataListener()).build();
excelReader.read(sheet1, sheet2);
}
}
Ignoring Hidden Sheets
Overview
By setting the ignoreHiddenSheet parameter to true, data from sheets in "hidden" state will not be read.
This supports both "normal hidden" and "very hidden" states.
Code Example
@Test
public void exceptionRead() {
String fileName = "path/to/demo.xlsx";
FesodSheet.read(fileName, DemoData.class, new DemoDataListener())
.ignoreHiddenSheet(Boolean.TRUE)
.sheet()
.doRead();
}
In Microsoft Excel, Sheets have two hidden states: "normal hidden (xlSheetHidden)" and "very hidden ( xlSheetVeryHidden)". Very hidden can be set through
VBA, and in this case, the hidden sheet cannot be unhidden through the "Unhide" operation.
Reading Specific Columns
Overview
By configuring includeColumnIndexes, you can specify which columns to read from a sheet. Unselected columns are skipped during parsing, and the target columns are remapped to contiguous zero-based indices.
Note: This feature supports both modern .xlsx (OOXML) and legacy .xls (BIFF8 / Excel 97–2003) file formats.
Code Example
@Test
public void readSpecificColumns() {
// Works with both demo.xlsx and demo.xls
String fileName = "path/to/demo.xls";
// Specify 0-based column indices to include (e.g., Column A, C, E)
List<Integer> includeColumnIndexes = Arrays.asList(0, 2, 4);
// Option 1
try (ExcelReader excelReader = FesodSheet.read(fileName, DemoData.class, new DemoDataListener()).build()) {
ReadSheet readSheet = FesodSheet.readSheet(0, "Sheet1", targetColumns).build();
excelReader.read(readSheet);
}
// Option 2
try (ExcelReader excelReader = FesodSheet.read(fileName).build()) {
ReadSheet readSheet = FesodSheet.readSheet(0)
.head(DemoData.class)
.includeColumnIndexes(includeColumnIndexes)
.registerReadListener(new DemoDataListener())
.build();
excelReader.read(readSheet);
}
}