Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 18 additions & 7 deletions fesod-sheet/src/main/java/org/apache/fesod/sheet/FesodSheet.java
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ public static ExcelReaderSheetBuilder readSheet(String sheetName) {
* @return Excel sheet reader builder.
*/
public static ExcelReaderSheetBuilder readSheet(Integer sheetNo, String sheetName) {
return readSheet(sheetNo, sheetName, null);
return readSheet(sheetNo, sheetName, null, null);
}

/**
Expand All @@ -326,25 +326,36 @@ public static ExcelReaderSheetBuilder readSheet(Integer sheetNo, String sheetNam
* @return
*/
public static ExcelReaderSheetBuilder readSheet(Integer sheetNo, String sheetName, Integer numRows) {
return new ExcelReaderSheetBuilder()
.sheetNoIfNotNull(sheetNo)
.sheetNameIfNotNull(sheetName)
.numRowsIfNotNull(numRows);
return readSheet(sheetNo, sheetName, numRows, null);
}

/**
* Build excel the 'readSheet' targeting specific column indexes.
*
* @param sheetNo Index of sheet, 0 base.
* @param sheetName The name of sheet.
* @param columnIndexes Specific columns to read (e.g., [0, 2] for Column A and C).
* @return Excel sheet reader builder.
*/
public static ExcelReaderSheetBuilder readSheet(Integer sheetNo, String sheetName, List<Integer> columnIndexes) {
return readSheet(sheetNo, sheetName, null, columnIndexes);
}

/**
* Build excel the 'ReadSheet'.
*
* @param sheetNo Index of sheet, 0 base.
* @param sheetName The name of sheet.
* @param numRows The number of rows to read, the default is all, start with 0.
* @param columnIndexes Specific columns to read (e.g., [0, 2] for Column A and C).
* @return Excel sheet reader builder.
*/
public static ExcelReaderSheetBuilder readSheetWithColumns(
public static ExcelReaderSheetBuilder readSheet(
Integer sheetNo, String sheetName, Integer numRows, List<Integer> columnIndexes) {
return new ExcelReaderSheetBuilder()
.sheetNoIfNotNull(sheetNo)
.sheetNameIfNotNull(sheetName)
.numRowsIfNotNull(numRows)
.includeColumnIndexes(columnIndexes);
.includeColumnIndexesIfNotNull(columnIndexes);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ void testReadSheet_withColumnIndexes_shouldConfigureAll() {

List<Integer> targetColumns = Arrays.asList(0, 2);

ExcelReaderSheetBuilder builder = FesodSheet.readSheetWithColumns(0, "Sheet1", 100, targetColumns);
ExcelReaderSheetBuilder builder = FesodSheet.readSheet(0, "Sheet1", 100, targetColumns);
ReadSheet configuredSheet = builder.build();
List<Map<Integer, String>> readResults = FesodSheet.read(tempFile)
.sheet(0)
Expand Down
7 changes: 7 additions & 0 deletions website/docs/sheet/read/sheet.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,13 @@ 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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,13 @@ public void readSpecificColumns() {
// 指定需要读取的列索引(从 0 开始,例如 0, 2, 4 代表 A, C, E 列)
List<Integer> includeColumnIndexes = Arrays.asList(0, 2, 4);

// 方案 1
try (ExcelReader excelReader = FesodSheet.read(fileName, DemoData.class, new DemoDataListener()).build()) {
ReadSheet readSheet = FesodSheet.readSheet(0, "Sheet1", targetColumns).build();
excelReader.read(readSheet);
}

// 方案 2
try (ExcelReader excelReader = FesodSheet.read(fileName).build()) {
ReadSheet readSheet = FesodSheet.readSheet(0)
.head(DemoData.class)
Expand Down
Loading