diff --git a/fesod-sheet/src/main/java/org/apache/fesod/sheet/FesodSheet.java b/fesod-sheet/src/main/java/org/apache/fesod/sheet/FesodSheet.java index d46cde86e..c72910c8d 100644 --- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/FesodSheet.java +++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/FesodSheet.java @@ -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); } /** @@ -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 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 columnIndexes) { return new ExcelReaderSheetBuilder() .sheetNoIfNotNull(sheetNo) .sheetNameIfNotNull(sheetName) .numRowsIfNotNull(numRows) - .includeColumnIndexes(columnIndexes); + .includeColumnIndexesIfNotNull(columnIndexes); } } diff --git a/fesod-sheet/src/test/java/org/apache/fesod/sheet/FesodSheetTest.java b/fesod-sheet/src/test/java/org/apache/fesod/sheet/FesodSheetTest.java index bcc6ad3e9..c885d4912 100644 --- a/fesod-sheet/src/test/java/org/apache/fesod/sheet/FesodSheetTest.java +++ b/fesod-sheet/src/test/java/org/apache/fesod/sheet/FesodSheetTest.java @@ -297,7 +297,7 @@ void testReadSheet_withColumnIndexes_shouldConfigureAll() { List 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> readResults = FesodSheet.read(tempFile) .sheet(0) diff --git a/website/docs/sheet/read/sheet.md b/website/docs/sheet/read/sheet.md index 77548266a..2d142ff4f 100644 --- a/website/docs/sheet/read/sheet.md +++ b/website/docs/sheet/read/sheet.md @@ -120,6 +120,13 @@ String fileName = "path/to/demo.xls"; // Specify 0-based column indices to include (e.g., Column A, C, E) List 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) diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/sheet.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/sheet.md index 1c9d5bd65..56ae63f17 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/sheet.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/sheet.md @@ -99,6 +99,13 @@ public void readSpecificColumns() { // 指定需要读取的列索引(从 0 开始,例如 0, 2, 4 代表 A, C, E 列) List 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)