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]