This is an automated email from the ASF dual-hosted git repository.

delei pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fesod.git


The following commit(s) were added to refs/heads/main by this push:
     new b1ab1588 refactor: unify and overload readSheet methods for flexible 
usage (#1014)
b1ab1588 is described below

commit b1ab158849a19154c9948e89358d2848cc45f6c6
Author: DeleiGuo <[email protected]>
AuthorDate: Sun Aug 16 10:32:29 2026 +0800

    refactor: unify and overload readSheet methods for flexible usage (#1014)
---
 .../java/org/apache/fesod/sheet/FesodSheet.java    | 25 ++++++++++++++++------
 .../org/apache/fesod/sheet/FesodSheetTest.java     |  2 +-
 website/docs/sheet/read/sheet.md                   |  7 ++++++
 .../current/sheet/read/sheet.md                    |  7 ++++++
 4 files changed, 33 insertions(+), 8 deletions(-)

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 d46cde86..c72910c8 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 class FesodSheet {
      * @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 class FesodSheet {
      * @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);
     }
 }
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 bcc6ad3e..c885d491 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 @@ class FesodSheetTest {
 
         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)
diff --git a/website/docs/sheet/read/sheet.md b/website/docs/sheet/read/sheet.md
index 77548266..2d142ff4 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<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)
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 1c9d5bd6..56ae63f1 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<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)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to