From 09579cc610686eb79106c15bfc7a79ff89bd0f97 Mon Sep 17 00:00:00 2001 From: Bengbengbalabalabeng Date: Thu, 13 Aug 2026 22:15:35 +0800 Subject: [PATCH] docs(website): unify example code blocks to JEP-512 style --- website/docs/quickstart/example.md | 20 ++--- .../docs/sheet/advanced/custom-converter.md | 14 ++-- website/docs/sheet/advanced/large-file.md | 7 +- website/docs/sheet/advanced/password.md | 14 ++-- website/docs/sheet/fill/fill.md | 60 +++++++------- website/docs/sheet/help/core-class.md | 81 ++++++++----------- website/docs/sheet/read/converter.md | 7 +- website/docs/sheet/read/csv.md | 47 ++++++----- website/docs/sheet/read/exception.md | 7 +- website/docs/sheet/read/extra.md | 21 +++-- website/docs/sheet/read/format.md | 9 +-- website/docs/sheet/read/head.md | 21 +++-- website/docs/sheet/read/num-rows.md | 16 ++-- website/docs/sheet/read/pojo.md | 14 ++-- website/docs/sheet/read/sheet.md | 21 +++-- website/docs/sheet/read/simple.md | 63 +++++++-------- website/docs/sheet/write/converter.md | 16 ++-- website/docs/sheet/write/csv.md | 48 +++++------ website/docs/sheet/write/extra.md | 41 +++++----- website/docs/sheet/write/format.md | 8 +- website/docs/sheet/write/head.md | 36 +++++---- website/docs/sheet/write/image.md | 18 ++--- website/docs/sheet/write/merge.md | 23 +++--- website/docs/sheet/write/pojo.md | 47 +++++------ website/docs/sheet/write/sheet.md | 21 +++-- website/docs/sheet/write/simple.md | 21 +++-- website/docs/sheet/write/style.md | 35 ++++---- .../current/quickstart/example.md | 22 ++--- .../sheet/advanced/custom-converter.md | 14 ++-- .../current/sheet/advanced/large-file.md | 7 +- .../current/sheet/advanced/password.md | 14 ++-- .../current/sheet/fill/fill.md | 60 +++++++------- .../current/sheet/help/core-class.md | 81 ++++++++----------- .../current/sheet/read/converter.md | 7 +- .../current/sheet/read/csv.md | 47 ++++++----- .../current/sheet/read/exception.md | 7 +- .../current/sheet/read/extra.md | 21 +++-- .../current/sheet/read/format.md | 9 +-- .../current/sheet/read/head.md | 21 +++-- .../current/sheet/read/num-rows.md | 16 ++-- .../current/sheet/read/pojo.md | 14 ++-- .../current/sheet/read/sheet.md | 21 +++-- .../current/sheet/read/simple.md | 52 ++++++------ .../current/sheet/write/converter.md | 16 ++-- .../current/sheet/write/csv.md | 48 +++++------ .../current/sheet/write/extra.md | 41 +++++----- .../current/sheet/write/format.md | 8 +- .../current/sheet/write/head.md | 36 +++++---- .../current/sheet/write/image.md | 18 ++--- .../current/sheet/write/merge.md | 23 +++--- .../current/sheet/write/pojo.md | 47 +++++------ .../current/sheet/write/sheet.md | 21 +++-- .../current/sheet/write/simple.md | 21 +++-- .../current/sheet/write/style.md | 35 ++++---- 54 files changed, 680 insertions(+), 783 deletions(-) diff --git a/website/docs/quickstart/example.md b/website/docs/quickstart/example.md index cd1166321..c16f124f1 100644 --- a/website/docs/quickstart/example.md +++ b/website/docs/quickstart/example.md @@ -28,7 +28,7 @@ Below is an example of reading a spreadsheet document: ```java // Implement the ReadListener interface to set up operations for reading data -public class DemoDataListener implements ReadListener { +class DemoDataListener implements ReadListener { @Override public void invoke(DemoData data, AnalysisContext context) { System.out.println("Parsed a data entry" + JSON.toJSONString(data)); @@ -40,10 +40,11 @@ public class DemoDataListener implements ReadListener { } } -public static void main(String[] args) { - String fileName = "demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; + // Read file - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead(); + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()).sheet().doRead(); } ``` @@ -53,7 +54,7 @@ Below is a simple example of creating a spreadsheet document: ```java // Sample data class -public class DemoData { +class DemoData { @ExcelProperty("String Title") private String string; @ExcelProperty("Date Title") @@ -65,7 +66,7 @@ public class DemoData { } // Prepare data to write -private static List data() { +List data() { List list = new ArrayList<>(); for (int i = 0; i < 10; i++) { DemoData data = new DemoData(); @@ -77,9 +78,10 @@ private static List data() { return list; } -public static void main(String[] args) { - String fileName = "demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; + // Create a "Template" sheet and write data - FesodSheet.write(fileName, DemoData.class).sheet("Template").doWrite(data()); + FesodSheet.write(pathname, DemoData.class).sheet("Template").doWrite(data()); } ``` diff --git a/website/docs/sheet/advanced/custom-converter.md b/website/docs/sheet/advanced/custom-converter.md index 71ce5ed52..7dcf2ae1b 100644 --- a/website/docs/sheet/advanced/custom-converter.md +++ b/website/docs/sheet/advanced/custom-converter.md @@ -78,11 +78,10 @@ public class CustomStringStringConverter implements Converter { ### Write with Global Converter ```java -@Test -public void customConverterWrite() { - String fileName = "customConverterWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerConverter(new CustomStringStringConverter()) .sheet() .doWrite(data()); @@ -92,11 +91,10 @@ public void customConverterWrite() { ### Read with Global Converter ```java -@Test -public void customConverterRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .registerConverter(new CustomStringStringConverter()) .sheet() .doRead(); diff --git a/website/docs/sheet/advanced/large-file.md b/website/docs/sheet/advanced/large-file.md index 5eec07544..6ddf69e81 100644 --- a/website/docs/sheet/advanced/large-file.md +++ b/website/docs/sheet/advanced/large-file.md @@ -33,11 +33,10 @@ When exporting large datasets (e.g., database dumps, log analysis), loading all ### Code Example ```java -@Test -public void largeFileWrite() { - String fileName = "largeFile" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter excelWriter = FesodSheet.write(fileName, DemoData.class) + try (ExcelWriter excelWriter = FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new WorkbookWriteHandler() { @Override public void afterWorkbookCreate(WorkbookWriteHandlerContext context) { diff --git a/website/docs/sheet/advanced/password.md b/website/docs/sheet/advanced/password.md index 69125f6c7..f7aceea57 100644 --- a/website/docs/sheet/advanced/password.md +++ b/website/docs/sheet/advanced/password.md @@ -33,11 +33,10 @@ Fesod supports Excel's built-in password protection for both reading and writing ### Code Example ```java -@Test -public void passwordWrite() { - String fileName = "passwordWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName) + FesodSheet.write(pathname) .password("your_password") .head(DemoData.class) .sheet("PasswordSheet") @@ -52,11 +51,10 @@ public void passwordWrite() { ### Code Example ```java -@Test -public void passwordRead() { - String fileName = "path/to/encrypted.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .password("your_password") .sheet() .doRead(); diff --git a/website/docs/sheet/fill/fill.md b/website/docs/sheet/fill/fill.md index 24ea99aa2..158838edb 100644 --- a/website/docs/sheet/fill/fill.md +++ b/website/docs/sheet/fill/fill.md @@ -87,16 +87,17 @@ private List data() { ### Code Example ```java -@Test -public void simpleFill() { - String templateFileName = "path/to/simple.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname0 = "path/to/demo0.xlsx"; + String pathname1 = "path/to/demo1.xlsx"; // Approach 1: Fill based on object FillData fillData = new FillData(); fillData.setName("John Doe"); fillData.setNumber(5.2); - FesodSheet.write("simpleFill.xlsx") - .withTemplate(templateFileName) + FesodSheet.write(pathname0) + .withTemplate(template) .sheet() .doFill(fillData); @@ -104,8 +105,8 @@ public void simpleFill() { Map map = new HashMap<>(); map.put("name", "John Doe"); map.put("number", 5.2); - FesodSheet.write("simpleFillMap.xlsx") - .withTemplate(templateFileName) + FesodSheet.write(pathname1) + .withTemplate(template) .sheet() .doFill(map); } @@ -146,18 +147,19 @@ Fill multiple data items into a template list, supporting in-memory batch operat ### Code Example ```java -@Test -public void listFill() { - String templateFileName = "path/to/list.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname0 = "path/to/demo0.xlsx"; + String pathname1 = "path/to/demo1.xlsx"; // Approach 1: Fill all data at once - FesodSheet.write("listFill.xlsx") - .withTemplate(templateFileName) + FesodSheet.write(pathname0) + .withTemplate(template) .sheet() .doFill(data()); // Approach 2: Batch filling - try (ExcelWriter writer = FesodSheet.write("listFillBatch.xlsx").withTemplate(templateFileName).build()) { + try (ExcelWriter writer = FesodSheet.write(pathname1).withTemplate(template).build()) { WriteSheet writeSheet = FesodSheet.writerSheet().build(); writer.fill(data(), writeSheet); writer.fill(data(), writeSheet); @@ -223,11 +225,11 @@ Fill various data types in a template, including lists and regular variables. ### Code Example ```java -@Test -public void complexFill() { - String templateFileName = "path/to/complex.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter writer = FesodSheet.write("complexFill.xlsx").withTemplate(templateFileName).build()) { + try (ExcelWriter writer = FesodSheet.write(pathname).withTemplate(template).build()) { WriteSheet writeSheet = FesodSheet.writerSheet().build(); // Fill list data, with forceNewRow enabled @@ -289,11 +291,11 @@ filled using `WriteTable`. ### Code Example ```java -@Test -public void complexFillWithTable() { - String templateFileName = "path/to/complexFillWithTable.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter writer = FesodSheet.write("complexFillWithTable.xlsx").withTemplate(templateFileName).build()) { + try (ExcelWriter writer = FesodSheet.write(pathname).withTemplate(template).build()) { WriteSheet writeSheet = FesodSheet.writerSheet().build(); // Fill list data @@ -360,11 +362,11 @@ Fill list data horizontally, suitable for scenarios with dynamic column numbers. ### Code Example ```java -@Test -public void horizontalFill() { - String templateFileName = "path/to/horizontal.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter writer = FesodSheet.write("horizontalFill.xlsx").withTemplate(templateFileName).build()) { + try (ExcelWriter writer = FesodSheet.write(pathname).withTemplate(template).build()) { WriteSheet writeSheet = FesodSheet.writerSheet().build(); FillConfig config = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build(); @@ -418,11 +420,11 @@ Support filling multiple lists simultaneously, with prefixes to differentiate be ### Code Example ```java -@Test -public void compositeFill() { - String templateFileName = "path/to/composite.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter writer = FesodSheet.write("compositeFill.xlsx").withTemplate(templateFileName).build()) { + try (ExcelWriter writer = FesodSheet.write(pathname).withTemplate(template).build()) { WriteSheet writeSheet = FesodSheet.writerSheet().build(); // Use FillWrapper for filling multiple lists diff --git a/website/docs/sheet/help/core-class.md b/website/docs/sheet/help/core-class.md index f87110fdb..5f8b3d15a 100644 --- a/website/docs/sheet/help/core-class.md +++ b/website/docs/sheet/help/core-class.md @@ -123,11 +123,10 @@ public class CustomCellStyleHandler implements CellWriteHandler { Register and Use ```java -@Test -public void customCellStyleWrite() { - String fileName = "customCellStyleWrite.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new CustomCellStyleHandler()) .sheet("Custom Style") .doWrite(data()); @@ -164,11 +163,10 @@ public class CommentRowWriteHandler implements RowWriteHandler { Register and Use ```java -@Test -public void commentWrite() { - String fileName = "commentWrite.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new CommentRowWriteHandler()) .sheet("Insert Comment") .doWrite(data()); @@ -204,11 +202,10 @@ public class DropdownSheetWriteHandler implements SheetWriteHandler { Register and Use ```java -@Test -public void dropdownWrite() { - String fileName = "dropdownWrite.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new DropdownSheetWriteHandler()) .sheet("Add Dropdown") .doWrite(data()); @@ -294,11 +291,10 @@ public class DemoDataListener implements ReadListener { Use ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .sheet() // Read the first sheet by default .doRead(); } @@ -332,11 +328,10 @@ public class HeadDataListener implements ReadListener { Use ```java -@Test -public void readWithHead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new HeadDataListener()) + FesodSheet.read(pathname, DemoData.class, new HeadDataListener()) .sheet() // Read the first sheet by default .doRead(); } @@ -372,11 +367,10 @@ public class ExceptionHandlingListener implements ReadListener { Use ```java -@Test -public void readWithExceptionHandling() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new ExceptionHandlingListener()) + FesodSheet.read(pathname, DemoData.class, new ExceptionHandlingListener()) .sheet() .doRead(); } @@ -385,13 +379,12 @@ public void readWithExceptionHandling() { #### Pagination ```java -@Test -public void pageRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new PageReadListener<>(dataList -> { + FesodSheet.read(pathname, DemoData.class, new PageReadListener<>(dataList -> { // Pagination batch processing - log.info("Read a batch of data: {}", JSON.toJSONString(dataList)); + System.out.println("Read a batch of data: " + JSON.toJSONString(dataList)); // Implement data processing logic })) .sheet() @@ -501,11 +494,10 @@ public class DemoDataListener extends AnalysisEventListener { Use ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .sheet() // Read the first sheet by default .doRead(); } @@ -547,11 +539,10 @@ public class DemoDataListenerWithHead extends AnalysisEventListener { Use ```java -@Test -public void readWithHead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListenerWithHead()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListenerWithHead()) .sheet() // Read the first sheet by default .doRead(); } @@ -593,11 +584,10 @@ public class ExceptionHandlingListener extends AnalysisEventListener { Use ```java -@Test -public void readWithExceptionHandling() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new ExceptionHandlingListener()) + FesodSheet.read(pathname, DemoData.class, new ExceptionHandlingListener()) .sheet() .doRead(); } @@ -709,18 +699,17 @@ public class TimestampNumberConverter implements Converter { Use ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; // Read - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .registerConverter(new TimestampNumberConverter()) .sheet() .doRead(); // Write - FesodSheet.write(fileName) + FesodSheet.write(pathname) .registerConverter(new TimestampNumberConverter()) .sheet() .doWrite(data()); diff --git a/website/docs/sheet/read/converter.md b/website/docs/sheet/read/converter.md index b6ff7541c..80b5cb739 100644 --- a/website/docs/sheet/read/converter.md +++ b/website/docs/sheet/read/converter.md @@ -78,11 +78,10 @@ public class CustomStringStringConverter implements Converter { ### Code Example ```java -@Test -public void converterRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, ConverterData.class, new DemoDataListener()) + FesodSheet.read(pathname, ConverterData.class, new DemoDataListener()) .registerConverter(new CustomStringStringConverter()) // Register custom converter .sheet() .doRead(); diff --git a/website/docs/sheet/read/csv.md b/website/docs/sheet/read/csv.md index cb1d85923..c247f84da 100644 --- a/website/docs/sheet/read/csv.md +++ b/website/docs/sheet/read/csv.md @@ -58,10 +58,10 @@ Additionally, Fesod provides constants in `CsvConstant` to simplify usage. If the CSV file uses `\u0000` as the separator, you can configure it as follows: ```java -@Test -public void delimiterDemo() { - String csvFile = "path/to/your.csv"; - List dataList = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()) +void main() { + String pathname = "path/to/demo.csv"; + + List dataList = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .csv() .delimiter(CsvConstant.UNICODE_EMPTY) .doReadSync(); @@ -79,10 +79,10 @@ This should be set when field content contains delimiters or line breaks. #### Code Example ```java -@Test -public void quoteDemo() { - String csvFile = "path/to/your.csv"; - List dataList = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()) +void main() { + String pathname = "path/to/demo.csv"; + + List dataList = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .csv() .quote(CsvConstant.DOUBLE_QUOTE, QuoteMode.MINIMAL) .doReadSync(); @@ -97,10 +97,10 @@ separators (for example, Windows uses `CRLF`, while Unix/Linux uses `LF`). #### Code Example ```java -@Test -public void recordSeparatorDemo() { - String csvFile = "path/to/your.csv"; - List dataList = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()) +void main() { + String pathname = "path/to/demo.csv"; + + List dataList = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .csv() .recordSeparator(CsvConstant.LF) .doReadSync(); @@ -115,10 +115,10 @@ public void recordSeparatorDemo() { #### Code Example ```java -@Test -public void nullStringDemo() { - String csvFile = "path/to/your.csv"; - List dataList = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()) +void main() { + String pathname = "path/to/demo.csv"; + + List dataList = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .csv() .nullString("N/A") .doReadSync(); @@ -132,10 +132,10 @@ public void nullStringDemo() { #### Code Example ```java -@Test -public void escapeDemo() { - String csvFile = "path/to/your.csv"; - List dataList = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()) +void main() { + String pathname = "path/to/demo.csv"; + + List dataList = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .csv() .escape(CsvConstant.BACKSLASH) .doReadSync(); @@ -150,13 +150,12 @@ Supports directly building a `CSVFormat` object. ### Code Example ```java -@Test -public void csvFormatDemo() { +void main() { + String pathname = "path/to/demo.csv"; CSVFormat csvFormat = CSVFormat.DEFAULT.builder().setDelimiter(CsvConstant.AT).build(); - String csvFile = "path/to/your.csv"; - try (ExcelReader excelReader = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()).build()) { + try (ExcelReader excelReader = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()).build()) { ReadWorkbookHolder readWorkbookHolder = excelReader.analysisContext().readWorkbookHolder(); // Check if it's an instance of CsvReadWorkbookHolder if (readWorkbookHolder instanceof CsvReadWorkbookHolder) { diff --git a/website/docs/sheet/read/exception.md b/website/docs/sheet/read/exception.md index f1124d978..7454c1d09 100644 --- a/website/docs/sheet/read/exception.md +++ b/website/docs/sheet/read/exception.md @@ -53,11 +53,10 @@ public class DemoExceptionListener extends AnalysisEventListener { ### Code Example ```java -@Test -public void extraRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoCommentExtraListener()) + FesodSheet.read(pathname, DemoData.class, new DemoCommentExtraListener()) .extraRead(CellExtraTypeEnum.COMMENT) .sheet() .doRead(); @@ -97,11 +96,10 @@ public class DemoHyperLinkExtraListener implements ReadListener { ### Code Example ```java -@Test -public void extraRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoHyperLinkExtraListener()) + FesodSheet.read(pathname, DemoData.class, new DemoHyperLinkExtraListener()) .extraRead(CellExtraTypeEnum.HYPERLINK) .sheet() .doRead(); @@ -140,11 +138,10 @@ public class DemoMergeExtraListener implements ReadListener { ### Code Example ```java -@Test -public void extraRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoMergeExtraListener()) + FesodSheet.read(pathname, DemoData.class, new DemoMergeExtraListener()) .extraRead(CellExtraTypeEnum.MERGE) .sheet() .doRead(); diff --git a/website/docs/sheet/read/format.md b/website/docs/sheet/read/format.md index 83132907f..c368041ae 100644 --- a/website/docs/sheet/read/format.md +++ b/website/docs/sheet/read/format.md @@ -65,13 +65,12 @@ All fields in the POJO are `String` type. Fesod applies the configured converter ### Code Example ```java -@Test -public void converterRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, ConverterData.class, new PageReadListener(dataList -> { + FesodSheet.read(pathname, ConverterData.class, new PageReadListener(dataList -> { for (ConverterData data : dataList) { - log.info("Read a row of data: {}", JSON.toJSONString(data)); + System.out.println("Read a row of data: " + JSON.toJSONString(data)); } })).sheet().doRead(); } diff --git a/website/docs/sheet/read/head.md b/website/docs/sheet/read/head.md index f84bcb0b2..b9fac2ea1 100644 --- a/website/docs/sheet/read/head.md +++ b/website/docs/sheet/read/head.md @@ -53,11 +53,10 @@ public class DemoHeadDataListener extends AnalysisEventListener { ### Code Example ```java -@Test -public void headerRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoHeadDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoHeadDataListener()) .sheet() .doRead(); } @@ -75,11 +74,10 @@ classes. ### Code Example ```java -@Test -public void complexHeaderRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .sheet() // Set the number of header rows, default is 1 .headRowNumber(2) @@ -98,11 +96,10 @@ Set header POJO using the `head()` method. ### Code Example ```java -@Test -public void headerPojoRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, new DemoDataListener()) + FesodSheet.read(pathname, new DemoDataListener()) .head(DemoData.class) .sheet() .doRead(); diff --git a/website/docs/sheet/read/num-rows.md b/website/docs/sheet/read/num-rows.md index f4c10a17d..4bbd213f4 100644 --- a/website/docs/sheet/read/num-rows.md +++ b/website/docs/sheet/read/num-rows.md @@ -37,12 +37,13 @@ rows, i.e., read all rows. The row count includes header rows. ### Code Example ```java -@Test -public void allSheetRead() { +void main() { + String pathname = "path/to/demo.xlsx"; + // Read the first 100 rows - FesodSheet.read(fileName, DemoData.class, new PageReadListener(dataList -> { + FesodSheet.read(pathname, DemoData.class, new PageReadListener(dataList -> { for (DemoData demoData : dataList) { - log.info("Read one record: {}", JSON.toJSONString(demoData)); + System.out.println("Read one record: " + JSON.toJSONString(demoData)); } })).numRows(100).sheet().doRead(); } @@ -55,9 +56,10 @@ public void allSheetRead() { ### Code Example ```java -@Test -public void singleSheetRead() { - try (ExcelReader excelReader = FesodSheet.read(fileName, DemoData.class, new DemoDataListener()).build()) { +void main() { + String pathname = "path/to/demo.xlsx"; + + try (ExcelReader excelReader = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()).build()) { ReadSheet readSheet = FesodSheet.readSheet(0).build(); readSheet.setNumRows(100); // Read the first 100 rows excelReader.read(readSheet); diff --git a/website/docs/sheet/read/pojo.md b/website/docs/sheet/read/pojo.md index 4b914d1a0..a16c35fea 100644 --- a/website/docs/sheet/read/pojo.md +++ b/website/docs/sheet/read/pojo.md @@ -54,11 +54,10 @@ public class IndexOrNameData { #### Code Example ```java -@Test -public void indexOrNameRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, IndexOrNameData.class, new DemoDataListener()) + FesodSheet.read(pathname, IndexOrNameData.class, new DemoDataListener()) .sheet() .doRead(); } @@ -89,11 +88,10 @@ public class CellDataReadDemoData { ### Code Example ```java -@Test -public void cellDataRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, CellDataReadDemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, CellDataReadDemoData.class, new DemoDataListener()) .sheet() .doRead(); } diff --git a/website/docs/sheet/read/sheet.md b/website/docs/sheet/read/sheet.md index 202ab2852..1289c02bc 100644 --- a/website/docs/sheet/read/sheet.md +++ b/website/docs/sheet/read/sheet.md @@ -35,11 +35,10 @@ You can read multiple sheets from a spreadsheet file, but the same sheet cannot #### Reading All Sheets ```java -@Test -public void readAllSheet() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()).doReadAll(); + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()).doReadAll(); } ``` @@ -57,11 +56,10 @@ You can read a specific sheet from a spreadsheet file, supporting specification ### Code Example ```java -@Test -public void readSingleSheet() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelReader excelReader = FesodSheet.read(fileName).build()) { + try (ExcelReader excelReader = FesodSheet.read(pathname).build()) { // Sheet index ReadSheet sheet1 = FesodSheet.readSheet(0).head(DemoData.class) .registerReadListener(new DemoDataListener()).build(); @@ -85,11 +83,10 @@ This supports both **"normal hidden"** and **"very hidden"** states. ### Code Example ```java -@Test -public void exceptionRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .ignoreHiddenSheet(Boolean.TRUE) .sheet() .doRead(); diff --git a/website/docs/sheet/read/simple.md b/website/docs/sheet/read/simple.md index 7b57588fe..608e3b8e6 100644 --- a/website/docs/sheet/read/simple.md +++ b/website/docs/sheet/read/simple.md @@ -41,13 +41,12 @@ Listeners cannot be managed by Spring and must be re-instantiated each time a sp #### `Lambda` Expressions ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new PageReadListener<>(dataList -> { + FesodSheet.read(pathname, DemoData.class, new PageReadListener<>(dataList -> { for (DemoData demoData : dataList) { - log.info("Read one record: {}", JSON.toJSONString(demoData)); + System.out.println("Read one record: " + JSON.toJSONString(demoData)); } })).sheet().doRead(); } @@ -56,19 +55,18 @@ public void simpleRead() { #### Anonymous Inner Classes ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new ReadListener() { + FesodSheet.read(pathname, DemoData.class, new ReadListener() { @Override public void invoke(DemoData data, AnalysisContext context) { - log.info("Read one record: {}", JSON.toJSONString(data)); + System.out.println("Read one record: " + JSON.toJSONString(data)); } @Override public void doAfterAllAnalysed(AnalysisContext context) { - log.info("All data reading completed!"); + System.out.println("All data reading completed!"); } }).sheet().doRead(); } @@ -77,11 +75,10 @@ public void simpleRead() { #### Data Listeners ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .sheet() .doRead(); } @@ -134,11 +131,10 @@ public class DemoDataListener implements ReadListener { ### Code Example ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .sheet() .doRead(); } @@ -200,18 +196,17 @@ public class DemoData { #### Reading as POJO Object List ```java -@Test -public void synchronousReadToObjectList() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; // POJO Object List - List list = FesodSheet.read(fileName) + List list = FesodSheet.read(pathname) .head(DemoData.class) .sheet() .doReadSync(); for (DemoData data : list) { - log.info("Read data: {}", JSON.toJSONString(data)); + System.out.println("Read data: " + JSON.toJSONString(data)); } } ``` @@ -222,17 +217,16 @@ When not using POJOs, each row can be read as a Map, where the key is the column content. ```java -@Test -public void synchronousReadToMapList() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; // Map List - List> list = FesodSheet.read(fileName) + List> list = FesodSheet.read(pathname) .sheet() .doReadSync(); for (Map data : list) { - log.info("Read data: {}", JSON.toJSONString(data)); + System.out.println("Read data: " + JSON.toJSONString(data)); } } ``` @@ -246,14 +240,13 @@ By default, Fesod reads all columns from a sheet. If you only want to process sp When reading without a POJO template, the filtered columns are packed sequentially into the resulting `Map`. The first targeted column is mapped to key `0`, the second to key `1`, and so on. ```java -@Test -public void readSpecificColumnsToMapList() { - String fileName = "path/to/demo.xlsx"; - +void main() { + String pathname = "path/to/demo.xlsx"; + // We only want to read Column A (Index 0) and Column C (Index 2) List targetColumns = Arrays.asList(0, 2); - List> list = FesodSheet.read(fileName) + List> list = FesodSheet.read(pathname) .sheet() .includeColumnIndexes(targetColumns) .doReadSync(); @@ -264,7 +257,7 @@ public void readSpecificColumnsToMapList() { // Column Index 2 is mapped sequentially to key 1 String age = data.get(1); - log.info("ID: {}, Age: {}", id, age); + System.out.println("ID: " + id + ", Age: " + age); } } diff --git a/website/docs/sheet/write/converter.md b/website/docs/sheet/write/converter.md index 3199ec587..6bdc892ad 100644 --- a/website/docs/sheet/write/converter.md +++ b/website/docs/sheet/write/converter.md @@ -83,10 +83,10 @@ public class ConverterData { ### Code Example ```java -@Test -public void converterWrite() { - String fileName = "converterWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, ConverterData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, ConverterData.class) .sheet() .doWrite(data()); } @@ -103,10 +103,10 @@ Register a converter at the builder level to apply it to ALL fields matching the ### Code Example ```java -@Test -public void globalConverterWrite() { - String fileName = "globalConverterWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, DemoData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, DemoData.class) .registerConverter(new CustomStringStringConverter()) .sheet() .doWrite(data()); diff --git a/website/docs/sheet/write/csv.md b/website/docs/sheet/write/csv.md index 38a93d767..b5467886b 100644 --- a/website/docs/sheet/write/csv.md +++ b/website/docs/sheet/write/csv.md @@ -58,10 +58,10 @@ provides constants in `CsvConstant` to simplify usage. If the CSV file uses `\u0000` as the separator, you can configure it as follows: ```java -@Test -public void delimiterDemo() { - String csvFile = "path/to/your.csv"; - FesodSheet.write(csvFile, DemoData.class) +void main() { + String pathname = "path/to/demo.csv"; + + FesodSheet.write(pathname, DemoData.class) .csv() .delimiter(CsvConstant.UNICODE_EMPTY) .doWrite(data()); @@ -78,10 +78,10 @@ field content contains delimiters or line breaks. #### Code Example ```java -@Test -public void quoteDemo() { - String csvFile = "path/to/your.csv"; - FesodSheet.write(csvFile, DemoData.class) +void main() { + String pathname = "path/to/demo.csv"; + + FesodSheet.write(pathname, DemoData.class) .csv() .quote(CsvConstant.DOUBLE_QUOTE, QuoteMode.MINIMAL) .doWrite(data()); @@ -96,10 +96,10 @@ separators (for example, Windows uses `CRLF`, while Unix/Linux uses `LF`). #### Code Example ```java -@Test -public void recordSeparatorDemo() { - String csvFile = "path/to/your.csv"; - FesodSheet.write(csvFile, DemoData.class) +void main() { + String pathname = "path/to/demo.csv"; + + FesodSheet.write(pathname, DemoData.class) .csv() .recordSeparator(CsvConstant.LF) .doWrite(data()); @@ -114,10 +114,10 @@ For example, you can replace `null` objects with the string `"N/A"`. #### Code Example ```java -@Test -public void nullStringDemo() { - String csvFile = "path/to/your.csv"; - FesodSheet.write(csvFile, DemoData.class) +void main() { + String pathname = "path/to/demo.csv"; + + FesodSheet.write(pathname, DemoData.class) .csv() .nullString("N/A") .doWrite(data()); @@ -131,10 +131,10 @@ public void nullStringDemo() { #### Code Example ```java -@Test -public void escapeDemo() { - String csvFile = "path/to/your.csv"; - FesodSheet.write(csvFile, DemoData.class) +void main() { + String pathname = "path/to/demo.csv"; + + FesodSheet.write(pathname, DemoData.class) .csv() .escape(CsvConstant.BACKSLASH) .doWrite(data()); @@ -149,12 +149,12 @@ Supports directly building a `CSVFormat` object. ### Code Example ```java -@Test -public void csvFormatDemo() { +void main() { + String pathname = "path/to/demo.csv"; + CSVFormat csvFormat = CSVFormat.DEFAULT.builder().setDelimiter(CsvConstant.AT).build(); - String csvFile = "path/to/your.csv"; - try (ExcelWriter excelWriter = FesodSheet.write(csvFile, DemoData.class).excelType(ExcelTypeEnum.CSV).build()) { + try (ExcelWriter excelWriter = FesodSheet.write(pathname, DemoData.class).excelType(ExcelTypeEnum.CSV).build()) { WriteWorkbookHolder writeWorkbookHolder = excelWriter.writeContext().writeWorkbookHolder(); Workbook workbook = writeWorkbookHolder.getWorkbook(); // Check if it's an instance of CsvWorkbook diff --git a/website/docs/sheet/write/extra.md b/website/docs/sheet/write/extra.md index 522bccd9c..197cdddfb 100644 --- a/website/docs/sheet/write/extra.md +++ b/website/docs/sheet/write/extra.md @@ -56,11 +56,10 @@ public class CommentWriteHandler implements RowWriteHandler { Usage ```java -@Test -public void commentWrite() { - String fileName = "commentWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .inMemory(Boolean.TRUE) // Comments must enable in-memory mode .registerWriteHandler(new CommentWriteHandler()) .sheet() @@ -105,9 +104,9 @@ public class WriteCellDemoData { ### Code Example ```java -@Test -public void writeHyperlinkDataWrite() { - String fileName = "writeCellDataWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; + WriteCellDemoData data = new WriteCellDemoData(); // Set hyperlink WriteCellData cellData = new WriteCellData<>("Click to visit"); @@ -117,7 +116,7 @@ public void writeHyperlinkDataWrite() { cellData.setHyperlinkData(hyperlinkData); data.setHyperlink(cellData); - FesodSheet.write(fileName, WriteCellDemoData.class) + FesodSheet.write(pathname, WriteCellDemoData.class) .sheet() .doWrite(Collections.singletonList(data)); } @@ -157,9 +156,9 @@ public class WriteCellDemoData { ### Code Example ```java -@Test -public void writeFormulaDataWrite() { - String fileName = "writeCellDataWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; + WriteCellDemoData data = new WriteCellDemoData(); data.setNum1(10); data.setNum2(20); @@ -172,7 +171,7 @@ public void writeFormulaDataWrite() { cellData.setFormulaData(formulaData); data.setFormulaData(cellData); - FesodSheet.write(fileName, WriteCellDemoData.class) + FesodSheet.write(pathname, WriteCellDemoData.class) .sheet() .doWrite(Collections.singletonList(data)); } @@ -201,13 +200,12 @@ Supports using existing template files and filling data into templates, suitable ### Code Example ```java -@Test -public void templateWrite() { - String templateFileName = "path/to/template.xlsx"; - String fileName = "templateWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) - .withTemplate(templateFileName) + FesodSheet.write(pathname, DemoData.class) + .withTemplate(template) .sheet() .doWrite(data()); } @@ -241,11 +239,10 @@ public class DropdownWriteHandler implements SheetWriteHandler { Usage ```java -@Test -public void dropdownWrite() { - String fileName = "dropdownWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new DropdownWriteHandler()) .sheet("Dropdown Example") .doWrite(data()); diff --git a/website/docs/sheet/write/format.md b/website/docs/sheet/write/format.md index eb48f5a60..ad4879832 100644 --- a/website/docs/sheet/write/format.md +++ b/website/docs/sheet/write/format.md @@ -53,10 +53,10 @@ public class ConverterData { ### Code Example ```java -@Test -public void converterWrite() { - String fileName = "converterWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, ConverterData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, ConverterData.class) .sheet() .doWrite(data()); } diff --git a/website/docs/sheet/write/head.md b/website/docs/sheet/write/head.md index a8cab5200..b87e7cd81 100644 --- a/website/docs/sheet/write/head.md +++ b/website/docs/sheet/write/head.md @@ -49,10 +49,10 @@ public class ComplexHeadData { ### Code Example ```java -@Test -public void complexHeadWrite() { - String fileName = "complexHeadWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, ComplexHeadData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, ComplexHeadData.class) .sheet() .doWrite(data()); } @@ -86,16 +86,15 @@ Generate dynamic headers in real-time, suitable for scenarios where header conte ### Code Example ```java -@Test -public void dynamicHeadWrite() { - String fileName = "dynamicHeadWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; List> head = Arrays.asList( Collections.singletonList("Dynamic String Title"), Collections.singletonList("Dynamic Number Title"), Collections.singletonList("Dynamic Date Title")); - FesodSheet.write(fileName) + FesodSheet.write(pathname) .head(head) .sheet() .doWrite(data()); @@ -141,9 +140,8 @@ cells. The example below uses a three-level header where names repeat in both di ### Code Example ```java -@Test -public void dynamicHeadWriteWithStrategy() { - String fileName = "dynamicHeadWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; List> head = Arrays.asList( Arrays.asList("Main Title", "ID", "ID"), @@ -152,7 +150,7 @@ public void dynamicHeadWriteWithStrategy() { Arrays.asList("Main Title", "Group B", "Name"), Arrays.asList("Main Title", "Group B", "Age")); - FesodSheet.write(fileName) + FesodSheet.write(pathname) .head(head) .headerMergeStrategy(HeaderMergeStrategy.FULL_RECTANGLE) .sheet() @@ -264,11 +262,15 @@ So if a column title that repeats down the levels should become one tall cell, c **Disable merging**: Use `NONE` to completely disable automatic merging: ```java -FesodSheet.write(fileName) - .head(head) - .headerMergeStrategy(HeaderMergeStrategy.NONE) - .sheet() - .doWrite(data()); +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname) + .head(head) + .headerMergeStrategy(HeaderMergeStrategy.NONE) + .sheet() + .doWrite(data()); +} ``` **Note**: The old `automaticMergeHead` parameter is still supported for backward compatibility. When `headerMergeStrategy` is not set, the behavior is determined by `automaticMergeHead` (`true` → `AUTO`, `false` → `NONE`). diff --git a/website/docs/sheet/write/image.md b/website/docs/sheet/write/image.md index ede0a1f76..9c98d0d4a 100644 --- a/website/docs/sheet/write/image.md +++ b/website/docs/sheet/write/image.md @@ -66,15 +66,14 @@ public class ImageDemoData { ### Code Example ```java -@Test -public void imageWrite() { - String fileName = "imageWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; String imagePath = "path/to/image.jpg"; ImageDemoData data = new ImageDemoData(); data.setImage(new File(imagePath)); - FesodSheet.write(fileName, ImageDemoData.class) + FesodSheet.write(pathname, ImageDemoData.class) .sheet() .doWrite(Collections.singletonList(data)); } @@ -125,9 +124,9 @@ public class ImageCellDemoData { ### Code Example ```java -@Test -public void imageCellWrite() throws Exception { - String fileName = "imageCellWrite" + System.currentTimeMillis() + ".xlsx"; +void main() throws Exception { + String pathname = "path/to/demo.xlsx"; + byte[] imageBytes = Files.readAllBytes(Paths.get("path/to/image.jpg")); WriteCellData writeCellData = new WriteCellData<>(); @@ -161,7 +160,7 @@ public void imageCellWrite() throws Exception { ImageCellDemoData data = new ImageCellDemoData(); data.setImage(writeCellData); - FesodSheet.write(fileName, ImageCellDemoData.class) + FesodSheet.write(pathname, ImageCellDemoData.class) .sheet() .doWrite(Collections.singletonList(data)); } @@ -208,8 +207,7 @@ URL image data exceeds maximum size The policy is global and can be replaced: ```java -@Test -public void configureUrlImages() { +void main() { UrlImageConverter.setFetchPolicy(UrlImageFetchPolicy.builder() .maxImageBytes(2 * 1024 * 1024) .maxRedirects(1) diff --git a/website/docs/sheet/write/merge.md b/website/docs/sheet/write/merge.md index 99a495e13..0cd970c85 100644 --- a/website/docs/sheet/write/merge.md +++ b/website/docs/sheet/write/merge.md @@ -56,10 +56,10 @@ public class DemoMergeData { ### Code Example ```java -@Test -public void annotationMergeWrite() { - String fileName = "annotationMergeWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, DemoMergeData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, DemoMergeData.class) .sheet() .doWrite(data()); } @@ -91,13 +91,12 @@ Register a `LoopMergeStrategy(eachRow, columnIndex)` as a write handler. More fl ### Code Example ```java -@Test -public void strategyMergeWrite() { - String fileName = "strategyMergeWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; // Merge every 2 rows in column 0 LoopMergeStrategy strategy = new LoopMergeStrategy(2, 0); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(strategy) .sheet() .doWrite(data()); @@ -131,10 +130,10 @@ public class CustomMergeStrategy extends AbstractMergeStrategy { Usage: ```java -@Test -public void customMergeWrite() { - String fileName = "customMergeWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, DemoData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new CustomMergeStrategy()) .sheet() .doWrite(data()); diff --git a/website/docs/sheet/write/pojo.md b/website/docs/sheet/write/pojo.md index f21e1236f..4a25d5d63 100644 --- a/website/docs/sheet/write/pojo.md +++ b/website/docs/sheet/write/pojo.md @@ -41,12 +41,11 @@ The collection holds **POJO field names**, not header titles. Both examples belo Everything except the listed fields is written: ```java -@Test -public void excludeColumnWrite() { - String fileName = "excludeColumnFieldWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; Set excludeColumns = Collections.singleton("date"); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .excludeColumnFieldNames(excludeColumns) .sheet() .doWrite(data()); @@ -76,12 +75,11 @@ The `date` field is gone, the other two remain: Only the listed fields are written: ```java -@Test -public void includeColumnWrite() { - String fileName = "includeColumnFieldWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; Set includeColumns = Collections.singleton("date"); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .includeColumnFieldNames(includeColumns) .sheet() .doWrite(data()); @@ -137,10 +135,10 @@ public class IndexData { Using the `index` attribute of the `@ExcelProperty` annotation. ```java -@Test -public void indexWrite() { - String fileName = "indexWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, IndexData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, IndexData.class) .sheet() .doWrite(data()); } @@ -174,12 +172,11 @@ The columns come out in the POJO's order, not the collection's. Listing `doubleD `string` first, because that is the order the fields are declared in: ```java -@Test -public void includeColumnOrderWrite() { - String fileName = "includeColumnFieldWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; Set includeColumns = new LinkedHashSet<>(Arrays.asList("doubleData", "string")); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .includeColumnFieldNames(includeColumns) .sheet() .doWrite(data()); @@ -204,12 +201,11 @@ public void includeColumnOrderWrite() { Add `.orderByIncludeColumn(true)` to follow the collection's order instead: ```java -@Test -public void orderByIncludeColumnWrite() { - String fileName = "includeColumnFieldWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; Set includeColumns = new LinkedHashSet<>(Arrays.asList("doubleData", "string")); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .includeColumnFieldNames(includeColumns) .orderByIncludeColumn(true) .sheet() @@ -243,24 +239,23 @@ Write data directly using `List>` to define headers and data withou ### Code Example ```java -@Test -public void noModelWrite() { - String fileName = "noModelWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName) + FesodSheet.write(pathname) .head(head()) // Dynamic headers .sheet("Write Without Object") .doWrite(dataList()); } -private List> head() { +List> head() { return Arrays.asList( Collections.singletonList("String Title"), Collections.singletonList("Number Title"), Collections.singletonList("Date Title")); } -private List> dataList() { +List> dataList() { List> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(Arrays.asList("String" + i, 0.56, new Date())); diff --git a/website/docs/sheet/write/sheet.md b/website/docs/sheet/write/sheet.md index 1be63cc18..94100a9ea 100644 --- a/website/docs/sheet/write/sheet.md +++ b/website/docs/sheet/write/sheet.md @@ -35,11 +35,10 @@ Write data in batches to the same Sheet. ### Code Example ```java -@Test -public void writeSingleSheet() { - String fileName = "repeatedWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter excelWriter = FesodSheet.write(fileName, DemoData.class).build()) { + try (ExcelWriter excelWriter = FesodSheet.write(pathname, DemoData.class).build()) { WriteSheet writeSheet = FesodSheet.writerSheet("Sheet1").build(); for (int i = 0; i < 5; i++) { excelWriter.write(data(), writeSheet); @@ -76,11 +75,10 @@ Write data in batches to multiple Sheets, enabling paginated writing for large d ### Code Example ```java -@Test -public void writeMultiSheet() { - String fileName = "repeatedWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter excelWriter = FesodSheet.write(fileName, DemoData.class).build()) { + try (ExcelWriter excelWriter = FesodSheet.write(pathname, DemoData.class).build()) { for (int i = 0; i < 5; i++) { WriteSheet writeSheet = FesodSheet.writerSheet(i, "Sheet" + i).build(); excelWriter.write(data(), writeSheet); @@ -117,11 +115,10 @@ Supports using multiple Tables within a single Sheet for segmented writing. ### Code Example ```java -@Test -public void tableWrite() { - String fileName = "tableWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter excelWriter = FesodSheet.write(fileName).build()) { + try (ExcelWriter excelWriter = FesodSheet.write(pathname).build()) { WriteSheet writeSheet = FesodSheet.writerSheet("Table Example").build(); WriteTable table1 = FesodSheet.writerTable(0).head(DemoData.class).build(); WriteTable table2 = FesodSheet.writerTable(1).head(DemoData.class).build(); diff --git a/website/docs/sheet/write/simple.md b/website/docs/sheet/write/simple.md index 0a4a55329..c889f9a42 100644 --- a/website/docs/sheet/write/simple.md +++ b/website/docs/sheet/write/simple.md @@ -74,11 +74,10 @@ Fesod provides multiple writing methods, including `Lambda` expressions, data li #### `Lambda` Expression ```java -@Test -public void simpleWrite() { - String fileName = "simpleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .sheet("Sheet1") .doWrite(() -> data()); } @@ -87,11 +86,10 @@ public void simpleWrite() { #### Data List ```java -@Test -public void simpleWrite() { - String fileName = "simpleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .sheet("Sheet1") .doWrite(data()); } @@ -100,11 +98,10 @@ public void simpleWrite() { #### `ExcelWriter` Object ```java -@Test -public void simpleWrite() { - String fileName = "simpleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter excelWriter = FesodSheet.write(fileName, DemoData.class).build()) { + try (ExcelWriter excelWriter = FesodSheet.write(pathname, DemoData.class).build()) { WriteSheet writeSheet = FesodSheet.writerSheet("Sheet1").build(); excelWriter.write(data(), writeSheet); } diff --git a/website/docs/sheet/write/style.md b/website/docs/sheet/write/style.md index 8637a80a1..9b00fe1a6 100644 --- a/website/docs/sheet/write/style.md +++ b/website/docs/sheet/write/style.md @@ -64,11 +64,10 @@ public class DemoStyleData { ### Code Example ```java -@Test -public void annotationStyleWrite() { - String fileName = "annotationStyleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoStyleData.class) + FesodSheet.write(pathname, DemoStyleData.class) .sheet() .doWrite(data()); } @@ -101,9 +100,8 @@ Use `HorizontalCellStyleStrategy` to set styles for headers and content separate ### Code Example ```java -@Test -public void handlerStyleWrite() { - String fileName = "handlerStyleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; // Define header style WriteCellStyle headStyle = new WriteCellStyle(); @@ -124,7 +122,7 @@ public void handlerStyleWrite() { HorizontalCellStyleStrategy styleStrategy = new HorizontalCellStyleStrategy(headStyle, contentStyle); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(styleStrategy) .sheet("Style Template") .doWrite(data()); @@ -190,11 +188,10 @@ public class CustomCellStyleWriteHandler implements CellWriteHandler { Usage ```java -@Test -public void customCellStyleWrite() { - String fileName = "customCellStyleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new CustomCellStyleWriteHandler()) .sheet("Custom Style") .doWrite(data()); @@ -212,11 +209,10 @@ Directly manipulate POI's `CellStyle`, suitable for precise style control. ### Code Example ```java -@Test -public void poiStyleWrite() { - String fileName = "poiStyleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new CellWriteHandler() { @Override public void afterCellDispose(CellWriteHandlerContext context) { @@ -270,11 +266,10 @@ public class WidthAndHeightData { ### Code Example ```java -@Test -public void widthAndHeightWrite() { - String fileName = "widthAndHeightWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, WidthAndHeightData.class) + FesodSheet.write(pathname, WidthAndHeightData.class) .sheet() .doWrite(data()); } diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/quickstart/example.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/quickstart/example.md index 0d2049bbb..723742582 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/quickstart/example.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/quickstart/example.md @@ -11,7 +11,7 @@ title: '简单示例' ```java // 实现 ReadListener 接口,设置读取数据的操作 -public class DemoDataListener implements ReadListener { +class DemoDataListener implements ReadListener { @Override public void invoke(DemoData data, AnalysisContext context) { System.out.println("解析到一条数据" + JSON.toJSONString(data)); @@ -23,10 +23,11 @@ public class DemoDataListener implements ReadListener { } } -public static void main(String[] args) { - String fileName = "demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; + // 读取文件 - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead(); + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()).sheet().doRead(); } ``` @@ -36,7 +37,7 @@ public static void main(String[] args) { ```java // 示例数据类 -public class DemoData { +class DemoData { @ExcelProperty("字符串标题") private String string; @ExcelProperty("日期标题") @@ -48,7 +49,7 @@ public class DemoData { } // 填充要写入的数据 -private static List data() { +List data() { List list = new ArrayList<>(); for (int i = 0; i < 10; i++) { DemoData data = new DemoData(); @@ -60,9 +61,10 @@ private static List data() { return list; } -public static void main(String[] args) { - String fileName = "demo.xlsx"; - // 创建一个名为“模板”的 sheet 页,并写入数据 - FesodSheet.write(fileName, DemoData.class).sheet("模板").doWrite(data()); +void main() { + String pathname = "path/to/demo.xlsx"; + + // 创建一个名为"模板"的 sheet 页,并写入数据 + FesodSheet.write(pathname, DemoData.class).sheet("模板").doWrite(data()); } ``` diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/custom-converter.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/custom-converter.md index cf5ce96b4..d74c3acdb 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/custom-converter.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/custom-converter.md @@ -61,11 +61,10 @@ public class CustomStringStringConverter implements Converter { ### 使用全局转换器写入 ```java -@Test -public void customConverterWrite() { - String fileName = "customConverterWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerConverter(new CustomStringStringConverter()) .sheet() .doWrite(data()); @@ -75,11 +74,10 @@ public void customConverterWrite() { ### 使用全局转换器读取 ```java -@Test -public void customConverterRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .registerConverter(new CustomStringStringConverter()) .sheet() .doRead(); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/large-file.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/large-file.md index 4b17831df..77d7faa62 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/large-file.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/large-file.md @@ -16,11 +16,10 @@ title: '大文件写入' ### 代码示例 ```java -@Test -public void largeFileWrite() { - String fileName = "largeFile" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter excelWriter = FesodSheet.write(fileName, DemoData.class) + try (ExcelWriter excelWriter = FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new WorkbookWriteHandler() { @Override public void afterWorkbookCreate(WorkbookWriteHandlerContext context) { diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/password.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/password.md index 2bc20c45d..0f02f7149 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/password.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/advanced/password.md @@ -16,11 +16,10 @@ Fesod 支持 Excel 内置的密码保护功能,适用于读取和写入操作 ### 代码示例 ```java -@Test -public void passwordWrite() { - String fileName = "passwordWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName) + FesodSheet.write(pathname) .password("your_password") .head(DemoData.class) .sheet("PasswordSheet") @@ -35,11 +34,10 @@ public void passwordWrite() { ### 代码示例 ```java -@Test -public void passwordRead() { - String fileName = "path/to/encrypted.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .password("your_password") .sheet() .doRead(); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/fill/fill.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/fill/fill.md index 646155e2e..126a8efa4 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/fill/fill.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/fill/fill.md @@ -62,16 +62,17 @@ private List data() { ### 代码示例 ```java -@Test -public void simpleFill() { - String templateFileName = "path/to/simple.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname0 = "path/to/demo0.xlsx"; + String pathname1 = "path/to/demo1.xlsx"; // 方案1:基于对象填充 FillData fillData = new FillData(); fillData.setName("张三"); fillData.setNumber(5.2); - FesodSheet.write("simpleFill.xlsx") - .withTemplate(templateFileName) + FesodSheet.write(pathname0) + .withTemplate(template) .sheet() .doFill(fillData); @@ -79,8 +80,8 @@ public void simpleFill() { Map map = new HashMap<>(); map.put("name", "张三"); map.put("number", 5.2); - FesodSheet.write("simpleFillMap.xlsx") - .withTemplate(templateFileName) + FesodSheet.write(pathname1) + .withTemplate(template) .sheet() .doFill(map); } @@ -121,18 +122,19 @@ public void simpleFill() { ### 代码示例 ```java -@Test -public void listFill() { - String templateFileName = "path/to/list.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname0 = "path/to/demo0.xlsx"; + String pathname1 = "path/to/demo1.xlsx"; // 方案1:一次性填充所有数据 - FesodSheet.write("listFill.xlsx") - .withTemplate(templateFileName) + FesodSheet.write(pathname0) + .withTemplate(template) .sheet() .doFill(data()); // 方案2:分批填充 - try (ExcelWriter writer = FesodSheet.write("listFillBatch.xlsx").withTemplate(templateFileName).build()) { + try (ExcelWriter writer = FesodSheet.write(pathname1).withTemplate(template).build()) { WriteSheet writeSheet = FesodSheet.writerSheet().build(); writer.fill(data(), writeSheet); writer.fill(data(), writeSheet); @@ -198,11 +200,11 @@ public void listFill() { ### 代码示例 ```java -@Test -public void complexFill() { - String templateFileName = "path/to/complex.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter writer = FesodSheet.write("complexFill.xlsx").withTemplate(templateFileName).build()) { + try (ExcelWriter writer = FesodSheet.write(pathname).withTemplate(template).build()) { WriteSheet writeSheet = FesodSheet.writerSheet().build(); // 填充列表数据,开启 forceNewRow @@ -263,11 +265,11 @@ public void complexFill() { ### 代码示例 ```java -@Test -public void complexFillWithTable() { - String templateFileName = "path/to/complexFillWithTable.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter writer = FesodSheet.write("complexFillWithTable.xlsx").withTemplate(templateFileName).build()) { + try (ExcelWriter writer = FesodSheet.write(pathname).withTemplate(template).build()) { WriteSheet writeSheet = FesodSheet.writerSheet().build(); // 填充列表数据 @@ -332,11 +334,11 @@ public void complexFillWithTable() { ### 代码示例 ```java -@Test -public void horizontalFill() { - String templateFileName = "path/to/horizontal.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter writer = FesodSheet.write("horizontalFill.xlsx").withTemplate(templateFileName).build()) { + try (ExcelWriter writer = FesodSheet.write(pathname).withTemplate(template).build()) { WriteSheet writeSheet = FesodSheet.writerSheet().build(); FillConfig config = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build(); @@ -390,11 +392,11 @@ public void horizontalFill() { ### 代码示例 ```java -@Test -public void compositeFill() { - String templateFileName = "path/to/composite.xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter writer = FesodSheet.write("compositeFill.xlsx").withTemplate(templateFileName).build()) { + try (ExcelWriter writer = FesodSheet.write(pathname).withTemplate(template).build()) { WriteSheet writeSheet = FesodSheet.writerSheet().build(); // 使用 FillWrapper 进行多列表填充 diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/help/core-class.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/help/core-class.md index 6713fe984..32ab6c378 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/help/core-class.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/help/core-class.md @@ -103,11 +103,10 @@ public class CustomCellStyleHandler implements CellWriteHandler { 注册并使用 ```java -@Test -public void customCellStyleWrite() { - String fileName = "customCellStyleWrite.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new CustomCellStyleHandler()) .sheet("自定义样式") .doWrite(data()); @@ -144,11 +143,10 @@ public class CommentRowWriteHandler implements RowWriteHandler { 注册并使用 ```java -@Test -public void commentWrite() { - String fileName = "commentWrite.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new CommentRowWriteHandler()) .sheet("插入批注") .doWrite(data()); @@ -184,11 +182,10 @@ public class DropdownSheetWriteHandler implements SheetWriteHandler { 注册并使用 ```java -@Test -public void dropdownWrite() { - String fileName = "dropdownWrite.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new DropdownSheetWriteHandler()) .sheet("添加下拉框") .doWrite(data()); @@ -271,11 +268,10 @@ public class DemoDataListener implements ReadListener { 使用 ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .sheet() // 默认读取第一个 Sheet .doRead(); } @@ -309,11 +305,10 @@ public class HeadDataListener implements ReadListener { 使用 ```java -@Test -public void readWithHead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new HeadDataListener()) + FesodSheet.read(pathname, DemoData.class, new HeadDataListener()) .sheet() // 默认读取第一个 Sheet .doRead(); } @@ -349,11 +344,10 @@ public class ExceptionHandlingListener implements ReadListener { 使用 ```java -@Test -public void readWithExceptionHandling() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new ExceptionHandlingListener()) + FesodSheet.read(pathname, DemoData.class, new ExceptionHandlingListener()) .sheet() .doRead(); } @@ -362,13 +356,12 @@ public void readWithExceptionHandling() { #### 分页处理 ```java -@Test -public void pageRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new PageReadListener<>(dataList -> { + FesodSheet.read(pathname, DemoData.class, new PageReadListener<>(dataList -> { // 分页批量处理 - log.info("读取到一批数据: {}", JSON.toJSONString(dataList)); + System.out.println("读取到一批数据: " + JSON.toJSONString(dataList)); // 实现数据处理逻辑 })) .sheet() @@ -468,11 +461,10 @@ public class DemoDataListener extends AnalysisEventListener { 使用 ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .sheet() // 默认读取第一个 Sheet .doRead(); } @@ -513,11 +505,10 @@ public class DemoDataListenerWithHead extends AnalysisEventListener { 使用 ```java -@Test -public void readWithHead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListenerWithHead()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListenerWithHead()) .sheet() // 默认读取第一个 Sheet .doRead(); } @@ -558,11 +549,10 @@ public class ExceptionHandlingListener extends AnalysisEventListener { 使用 ```java -@Test -public void readWithExceptionHandling() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new ExceptionHandlingListener()) + FesodSheet.read(pathname, DemoData.class, new ExceptionHandlingListener()) .sheet() .doRead(); } @@ -663,18 +653,17 @@ public class TimestampNumberConverter implements Converter { 使用 ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; // 读取 - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .registerConverter(new TimestampNumberConverter()) .sheet() .doRead(); // 写入 - FesodSheet.write(fileName) + FesodSheet.write(pathname) .registerConverter(new TimestampNumberConverter()) .sheet() .doWrite(data()); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/converter.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/converter.md index 0be17d2fa..4238225d3 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/converter.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/converter.md @@ -60,11 +60,10 @@ public class CustomStringStringConverter implements Converter { ### 代码示例 ```java -@Test -public void converterRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, ConverterData.class, new DemoDataListener()) + FesodSheet.read(pathname, ConverterData.class, new DemoDataListener()) .registerConverter(new CustomStringStringConverter()) // 注册自定义转换器 .sheet() .doRead(); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/csv.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/csv.md index d22fd5a21..2fb9987b2 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/csv.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/csv.md @@ -39,10 +39,10 @@ Fesod 通过不同的参数设计进行 CSV 如果 CSV 文件使用 `\u0000` 作为分隔符,可以如下设置: ```java -@Test -public void delimiterDemo() { - String csvFile = "path/to/your.csv"; - List dataList = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()) +void main() { + String pathname = "path/to/demo.csv"; + + List dataList = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .csv() .delimiter(CsvConstant.UNICODE_EMPTY) .doReadSync(); @@ -58,10 +58,10 @@ public void delimiterDemo() { #### 代码示例 ```java -@Test -public void quoteDemo() { - String csvFile = "path/to/your.csv"; - List dataList = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()) +void main() { + String pathname = "path/to/demo.csv"; + + List dataList = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .csv() .quote(CsvConstant.DOUBLE_QUOTE, QuoteMode.MINIMAL) .doReadSync(); @@ -75,10 +75,10 @@ public void quoteDemo() { #### 代码示例 ```java -@Test -public void recordSeparatorDemo() { - String csvFile = "path/to/your.csv"; - List dataList = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()) +void main() { + String pathname = "path/to/demo.csv"; + + List dataList = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .csv() .recordSeparator(CsvConstant.LF) .doReadSync(); @@ -92,10 +92,10 @@ public void recordSeparatorDemo() { #### 代码示例 ```java -@Test -public void nullStringDemo() { - String csvFile = "path/to/your.csv"; - List dataList = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()) +void main() { + String pathname = "path/to/demo.csv"; + + List dataList = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .csv() .nullString("N/A") .doReadSync(); @@ -109,10 +109,10 @@ public void nullStringDemo() { #### 代码示例 ```java -@Test -public void escapeDemo() { - String csvFile = "path/to/your.csv"; - List dataList = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()) +void main() { + String pathname = "path/to/demo.csv"; + + List dataList = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .csv() .escape(CsvConstant.BACKSLASH) .doReadSync(); @@ -127,13 +127,12 @@ public void escapeDemo() { ### 代码示例 ```java -@Test -public void csvFormatDemo() { +void main() { + String pathname = "path/to/demo.csv"; CSVFormat csvFormat = CSVFormat.DEFAULT.builder().setDelimiter(CsvConstant.AT).build(); - String csvFile = "path/to/your.csv"; - try (ExcelReader excelReader = FesodSheet.read(csvFile, DemoData.class, new DemoDataListener()).build()) { + try (ExcelReader excelReader = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()).build()) { ReadWorkbookHolder readWorkbookHolder = excelReader.analysisContext().readWorkbookHolder(); // 判断是否为CsvReadWorkbookHolder实例 if (readWorkbookHolder instanceof CsvReadWorkbookHolder) { diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/exception.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/exception.md index b8427ebf1..a3822814b 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/exception.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/exception.md @@ -38,11 +38,10 @@ public class DemoExceptionListener extends AnalysisEventListener { ### 代码示例 ```java -@Test -public void extraRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoCommentExtraListener()) + FesodSheet.read(pathname, DemoData.class, new DemoCommentExtraListener()) .extraRead(CellExtraTypeEnum.COMMENT) .sheet() .doRead(); @@ -84,11 +83,10 @@ public class DemoHyperLinkExtraListener implements ReadListener { ### 代码示例 ```java -@Test -public void extraRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoHyperLinkExtraListener()) + FesodSheet.read(pathname, DemoData.class, new DemoHyperLinkExtraListener()) .extraRead(CellExtraTypeEnum.HYPERLINK) .sheet() .doRead(); @@ -129,11 +127,10 @@ public class DemoMergeExtraListener implements ReadListener { ### 代码示例 ```java -@Test -public void extraRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoMergeExtraListener()) + FesodSheet.read(pathname, DemoData.class, new DemoMergeExtraListener()) .extraRead(CellExtraTypeEnum.MERGE) .sheet() .doRead(); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/format.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/format.md index e9f3ac51a..c3b05d255 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/format.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/format.md @@ -48,13 +48,12 @@ POJO 中所有字段均为 `String` 类型。Fesod 会在设置字段值之前 ### 代码示例 ```java -@Test -public void converterRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, ConverterData.class, new PageReadListener(dataList -> { + FesodSheet.read(pathname, ConverterData.class, new PageReadListener(dataList -> { for (ConverterData data : dataList) { - log.info("读取到一行数据:{}", JSON.toJSONString(data)); + System.out.println("读取到一行数据:" + JSON.toJSONString(data)); } })).sheet().doRead(); } diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/head.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/head.md index 34e9cb60b..3d67ee95e 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/head.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/head.md @@ -36,11 +36,10 @@ public class DemoHeadDataListener extends AnalysisEventListener { ### 代码示例 ```java -@Test -public void headerRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoHeadDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoHeadDataListener()) .sheet() .doRead(); } @@ -57,11 +56,10 @@ public void headerRead() { ### 代码示例 ```java -@Test -public void complexHeaderRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .sheet() // 设置多行表头的行数,默认为 1 .headRowNumber(2) @@ -80,11 +78,10 @@ public void complexHeaderRead() { ### 代码示例 ```java -@Test -public void headerPojoRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, new DemoDataListener()) + FesodSheet.read(pathname, new DemoDataListener()) .head(DemoData.class) .sheet() .doRead(); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/num-rows.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/num-rows.md index 8f067bde2..0f2134d51 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/num-rows.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/num-rows.md @@ -17,12 +17,13 @@ title: '行数' ### 代码示例 ```java -@Test -public void allSheetRead() { +void main() { + String pathname = "path/to/demo.xlsx"; + // 读取前100行 - FesodSheet.read(fileName, DemoData.class, new PageReadListener(dataList -> { + FesodSheet.read(pathname, DemoData.class, new PageReadListener(dataList -> { for (DemoData demoData : dataList) { - log.info("读取到一条数据{}", JSON.toJSONString(demoData)); + System.out.println("读取到一条数据" + JSON.toJSONString(demoData)); } })).numRows(100).sheet().doRead(); } @@ -35,9 +36,10 @@ public void allSheetRead() { ### 代码示例 ```java -@Test -public void singleSheetRead() { - try (ExcelReader excelReader = FesodSheet.read(fileName, DemoData.class, new DemoDataListener()).build()) { +void main() { + String pathname = "path/to/demo.xlsx"; + + try (ExcelReader excelReader = FesodSheet.read(pathname, DemoData.class, new DemoDataListener()).build()) { ReadSheet readSheet = FesodSheet.readSheet(0).build(); readSheet.setNumRows(100); // 读取前100行 excelReader.read(readSheet); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/pojo.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/pojo.md index c2f54a126..1840814fd 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/pojo.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/pojo.md @@ -36,11 +36,10 @@ public class IndexOrNameData { #### 代码示例 ```java -@Test -public void indexOrNameRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, IndexOrNameData.class, new DemoDataListener()) + FesodSheet.read(pathname, IndexOrNameData.class, new DemoDataListener()) .sheet() .doRead(); } @@ -71,11 +70,10 @@ public class CellDataReadDemoData { ### 代码示例 ```java -@Test -public void cellDataRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, CellDataReadDemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, CellDataReadDemoData.class, new DemoDataListener()) .sheet() .doRead(); } 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 f19e6c963..b42f992f6 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 @@ -18,11 +18,10 @@ title: 'Sheet' #### 读取全部 Sheet ```java -@Test -public void readAllSheet() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()).doReadAll(); + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()).doReadAll(); } ``` @@ -39,11 +38,10 @@ public void readAllSheet() { ### 代码示例 ```java -@Test -public void readSingleSheet() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelReader excelReader = FesodSheet.read(fileName).build()) { + try (ExcelReader excelReader = FesodSheet.read(pathname).build()) { // Sheet 索引 ReadSheet sheet1 = FesodSheet.readSheet(0).head(DemoData.class).registerReadListener(new DemoDataListener()).build(); // Sheet 名 @@ -64,11 +62,10 @@ public void readSingleSheet() { ### 代码示例 ```java -@Test -public void exceptionRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .ignoreHiddenSheet(Boolean.TRUE) .sheet() .doRead(); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/simple.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/simple.md index fea34f884..2447b51c8 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/simple.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/simple.md @@ -24,13 +24,12 @@ Fesod 提供监听器机制,用于在读取电子表格文件时对每一行 #### `Lambda` 表达式 ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new PageReadListener<>(dataList -> { + FesodSheet.read(pathname, DemoData.class, new PageReadListener<>(dataList -> { for (DemoData demoData : dataList) { - log.info("读取到一条数据: {}", JSON.toJSONString(demoData)); + System.out.println("读取到一条数据: " + JSON.toJSONString(demoData)); } })).sheet().doRead(); } @@ -39,19 +38,18 @@ public void simpleRead() { #### 匿名内部类 ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new ReadListener() { + FesodSheet.read(pathname, DemoData.class, new ReadListener() { @Override public void invoke(DemoData data, AnalysisContext context) { - log.info("读取到一条数据: {}", JSON.toJSONString(data)); + System.out.println("读取到一条数据: " + JSON.toJSONString(data)); } @Override public void doAfterAllAnalysed(AnalysisContext context) { - log.info("所有数据读取完成!"); + System.out.println("所有数据读取完成!"); } }).sheet().doRead(); } @@ -60,11 +58,10 @@ public void simpleRead() { #### 数据监听器 ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .sheet() .doRead(); } @@ -116,11 +113,10 @@ public class DemoDataListener implements ReadListener { ### 代码示例 ```java -@Test -public void simpleRead() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.read(fileName, DemoData.class, new DemoDataListener()) + FesodSheet.read(pathname, DemoData.class, new DemoDataListener()) .sheet() .doRead(); } @@ -183,18 +179,17 @@ public class DemoData { #### 读取为 POJO 对象列表 ```java -@Test -public void synchronousReadToObjectList() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; // POJO 列表 - List list = FesodSheet.read(fileName) + List list = FesodSheet.read(pathname) .head(DemoData.class) .sheet() .doReadSync(); for (DemoData data : list) { - log.info("读取到的数据: {}", JSON.toJSONString(data)); + System.out.println("读取到的数据: " + JSON.toJSONString(data)); } } ``` @@ -204,17 +199,16 @@ public void synchronousReadToObjectList() { 在不使用 POJO 情况下,可以将每一行读取为 Map,键为列索引,值为单元格内容。 ```java -@Test -public void synchronousReadToMapList() { - String fileName = "path/to/demo.xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; // Map 列表 - List> list = FesodSheet.read(fileName) + List> list = FesodSheet.read(pathname) .sheet() .doReadSync(); for (Map data : list) { - log.info("读取到的数据: {}", JSON.toJSONString(data)); + System.out.println("读取到的数据: " + JSON.toJSONString(data)); } } ``` diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/converter.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/converter.md index 720801692..a6b9e021a 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/converter.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/converter.md @@ -66,10 +66,10 @@ public class ConverterData { ### 代码示例 ```java -@Test -public void converterWrite() { - String fileName = "converterWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, ConverterData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, ConverterData.class) .sheet() .doWrite(data()); } @@ -86,10 +86,10 @@ public void converterWrite() { ### 代码示例 ```java -@Test -public void globalConverterWrite() { - String fileName = "globalConverterWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, DemoData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, DemoData.class) .registerConverter(new CustomStringStringConverter()) .sheet() .doWrite(data()); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/csv.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/csv.md index 907500063..d0c20ce4f 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/csv.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/csv.md @@ -39,10 +39,10 @@ Fesod 通过不同的参数设计进行 CSV 如果 CSV 文件使用 `\u0000` 作为分隔符,可以如下设置: ```java -@Test -public void delimiterDemo() { - String csvFile = "path/to/your.csv"; - FesodSheet.write(csvFile, DemoData.class) +void main() { + String pathname = "path/to/demo.csv"; + + FesodSheet.write(pathname, DemoData.class) .csv() .delimiter(CsvConstant.UNICODE_EMPTY) .doWrite(data()); @@ -57,10 +57,10 @@ public void delimiterDemo() { #### 代码示例 ```java -@Test -public void quoteDemo() { - String csvFile = "path/to/your.csv"; - FesodSheet.write(csvFile, DemoData.class) +void main() { + String pathname = "path/to/demo.csv"; + + FesodSheet.write(pathname, DemoData.class) .csv() .quote(CsvConstant.DOUBLE_QUOTE, QuoteMode.MINIMAL) .doWrite(data()); @@ -74,10 +74,10 @@ public void quoteDemo() { #### 代码示例 ```java -@Test -public void recordSeparatorDemo() { - String csvFile = "path/to/your.csv"; - FesodSheet.write(csvFile, DemoData.class) +void main() { + String pathname = "path/to/demo.csv"; + + FesodSheet.write(pathname, DemoData.class) .csv() .recordSeparator(CsvConstant.LF) .doWrite(data()); @@ -91,10 +91,10 @@ public void recordSeparatorDemo() { #### 代码示例 ```java -@Test -public void nullStringDemo() { - String csvFile = "path/to/your.csv"; - FesodSheet.write(csvFile, DemoData.class) +void main() { + String pathname = "path/to/demo.csv"; + + FesodSheet.write(pathname, DemoData.class) .csv() .nullString("N/A") .doWrite(data()); @@ -108,10 +108,10 @@ public void nullStringDemo() { #### 代码示例 ```java -@Test -public void escapeDemo() { - String csvFile = "path/to/your.csv"; - FesodSheet.write(csvFile, DemoData.class) +void main() { + String pathname = "path/to/demo.csv"; + + FesodSheet.write(pathname, DemoData.class) .csv() .escape(CsvConstant.BACKSLASH) .doWrite(data()); @@ -126,12 +126,12 @@ public void escapeDemo() { ### 代码示例 ```java -@Test -public void csvFormatDemo() { +void main() { + String pathname = "path/to/demo.csv"; + CSVFormat csvFormat = CSVFormat.DEFAULT.builder().setDelimiter(CsvConstant.AT).build(); - String csvFile = "path/to/your.csv"; - try (ExcelWriter excelWriter = FesodSheet.write(csvFile, DemoData.class).excelType(ExcelTypeEnum.CSV).build()) { + try (ExcelWriter excelWriter = FesodSheet.write(pathname, DemoData.class).excelType(ExcelTypeEnum.CSV).build()) { WriteWorkbookHolder writeWorkbookHolder = excelWriter.writeContext().writeWorkbookHolder(); Workbook workbook = writeWorkbookHolder.getWorkbook(); // 判断是否为CsvWorkbook实例 diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/extra.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/extra.md index e91d58061..58f8d6359 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/extra.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/extra.md @@ -39,11 +39,10 @@ public class CommentWriteHandler implements RowWriteHandler { 使用 ```java -@Test -public void commentWrite() { - String fileName = "commentWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .inMemory(Boolean.TRUE) // 批注必须启用内存模式 .registerWriteHandler(new CommentWriteHandler()) .sheet() @@ -88,9 +87,9 @@ public class WriteCellDemoData { ### 代码示例 ```java -@Test -public void writeHyperlinkDataWrite() { - String fileName = "writeCellDataWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; + WriteCellDemoData data = new WriteCellDemoData(); // 设置超链接 WriteCellData cellData = new WriteCellData<>("点击访问"); @@ -100,7 +99,7 @@ public void writeHyperlinkDataWrite() { cellData.setHyperlinkData(hyperlinkData); data.setHyperlink(cellData); - FesodSheet.write(fileName, WriteCellDemoData.class) + FesodSheet.write(pathname, WriteCellDemoData.class) .sheet() .doWrite(Collections.singletonList(data)); } @@ -140,9 +139,9 @@ public class WriteCellDemoData { ### 代码示例 ```java -@Test -public void writeFormulaDataWrite() { - String fileName = "writeCellDataWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; + WriteCellDemoData data = new WriteCellDemoData(); data.setNum1(10); data.setNum2(20); @@ -155,7 +154,7 @@ public void writeFormulaDataWrite() { cellData.setFormulaData(formulaData); data.setFormulaData(cellData); - FesodSheet.write(fileName, WriteCellDemoData.class) + FesodSheet.write(pathname, WriteCellDemoData.class) .sheet() .doWrite(Collections.singletonList(data)); } @@ -184,13 +183,12 @@ public void writeFormulaDataWrite() { ### 代码示例 ```java -@Test -public void templateWrite() { - String templateFileName = "path/to/template.xlsx"; - String fileName = "templateWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String template = "path/from/demo.xlsx"; + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) - .withTemplate(templateFileName) + FesodSheet.write(pathname, DemoData.class) + .withTemplate(template) .sheet() .doWrite(data()); } @@ -224,11 +222,10 @@ public class DropdownWriteHandler implements SheetWriteHandler { 使用 ```java -@Test -public void dropdownWrite() { - String fileName = "dropdownWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new DropdownWriteHandler()) .sheet("下拉框示例") .doWrite(data()); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/format.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/format.md index 23bf4135b..204f6d1d1 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/format.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/format.md @@ -36,10 +36,10 @@ public class ConverterData { ### 代码示例 ```java -@Test -public void converterWrite() { - String fileName = "converterWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, ConverterData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, ConverterData.class) .sheet() .doWrite(data()); } diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/head.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/head.md index 7386f5fe7..3e79718a4 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/head.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/head.md @@ -32,10 +32,10 @@ public class ComplexHeadData { ### 代码示例 ```java -@Test -public void complexHeadWrite() { - String fileName = "complexHeadWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, ComplexHeadData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, ComplexHeadData.class) .sheet() .doWrite(data()); } @@ -69,16 +69,15 @@ public void complexHeadWrite() { ### 代码示例 ```java -@Test -public void dynamicHeadWrite() { - String fileName = "dynamicHeadWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; List> head = Arrays.asList( Collections.singletonList("动态字符串标题"), Collections.singletonList("动态数字标题"), Collections.singletonList("动态日期标题")); - FesodSheet.write(fileName) + FesodSheet.write(pathname) .head(head) .sheet() .doWrite(data()); @@ -123,9 +122,8 @@ public void dynamicHeadWrite() { ### 代码示例 ```java -@Test -public void dynamicHeadWriteWithStrategy() { - String fileName = "dynamicHeadWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; List> head = Arrays.asList( Arrays.asList("主标题", "编号", "编号"), @@ -134,7 +132,7 @@ public void dynamicHeadWriteWithStrategy() { Arrays.asList("主标题", "B 组", "姓名"), Arrays.asList("主标题", "B 组", "年龄")); - FesodSheet.write(fileName) + FesodSheet.write(pathname) .head(head) .headerMergeStrategy(HeaderMergeStrategy.FULL_RECTANGLE) .sheet() @@ -238,11 +236,15 @@ public void dynamicHeadWriteWithStrategy() { **禁用合并**: 使用 `NONE` 完全禁用自动合并: ```java -FesodSheet.write(fileName) - .head(head) - .headerMergeStrategy(HeaderMergeStrategy.NONE) - .sheet() - .doWrite(data()); +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname) + .head(head) + .headerMergeStrategy(HeaderMergeStrategy.NONE) + .sheet() + .doWrite(data()); +} ``` **注意**: 旧的 `automaticMergeHead` 参数仍然支持以保持向后兼容。当未设置 `headerMergeStrategy` 时,行为由 `automaticMergeHead` 决定(`true` → `AUTO`,`false` → `NONE`)。 diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/image.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/image.md index f6d993470..cbd177512 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/image.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/image.md @@ -46,15 +46,14 @@ public class ImageDemoData { ### 代码示例 ```java -@Test -public void imageWrite() { - String fileName = "imageWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; String imagePath = "path/to/image.jpg"; ImageDemoData data = new ImageDemoData(); data.setImage(new File(imagePath)); - FesodSheet.write(fileName, ImageDemoData.class) + FesodSheet.write(pathname, ImageDemoData.class) .sheet() .doWrite(Collections.singletonList(data)); } @@ -103,9 +102,9 @@ public class ImageCellDemoData { ### 代码示例 ```java -@Test -public void imageCellWrite() throws Exception { - String fileName = "imageCellWrite" + System.currentTimeMillis() + ".xlsx"; +void main() throws Exception { + String pathname = "path/to/demo.xlsx"; + byte[] imageBytes = Files.readAllBytes(Paths.get("path/to/image.jpg")); WriteCellData writeCellData = new WriteCellData<>(); @@ -139,7 +138,7 @@ public void imageCellWrite() throws Exception { ImageCellDemoData data = new ImageCellDemoData(); data.setImage(writeCellData); - FesodSheet.write(fileName, ImageCellDemoData.class) + FesodSheet.write(pathname, ImageCellDemoData.class) .sheet() .doWrite(Collections.singletonList(data)); } @@ -186,8 +185,7 @@ URL image data exceeds maximum size 支持自定义设置安全策略: ```java -@Test -public void configureUrlImages() { +void main() { UrlImageConverter.setFetchPolicy(UrlImageFetchPolicy.builder() .maxImageBytes(2 * 1024 * 1024) .maxRedirects(1) diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/merge.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/merge.md index 0953a1c32..6c7547854 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/merge.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/merge.md @@ -39,10 +39,10 @@ public class DemoMergeData { ### 代码示例 ```java -@Test -public void annotationMergeWrite() { - String fileName = "annotationMergeWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, DemoMergeData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, DemoMergeData.class) .sheet() .doWrite(data()); } @@ -74,13 +74,12 @@ public void annotationMergeWrite() { ### 代码示例 ```java -@Test -public void strategyMergeWrite() { - String fileName = "strategyMergeWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; // 合并第 0 列中每 2 行 LoopMergeStrategy strategy = new LoopMergeStrategy(2, 0); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(strategy) .sheet() .doWrite(data()); @@ -114,10 +113,10 @@ public class CustomMergeStrategy extends AbstractMergeStrategy { 使用方式: ```java -@Test -public void customMergeWrite() { - String fileName = "customMergeWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, DemoData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new CustomMergeStrategy()) .sheet() .doWrite(data()); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/pojo.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/pojo.md index 2f02e9979..e3e62bc01 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/pojo.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/pojo.md @@ -23,12 +23,11 @@ title: '实体类' 除列出的字段外,其余字段都会写入: ```java -@Test -public void excludeColumnWrite() { - String fileName = "excludeColumnFieldWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; Set excludeColumns = Collections.singleton("date"); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .excludeColumnFieldNames(excludeColumns) .sheet() .doWrite(data()); @@ -58,12 +57,11 @@ public void excludeColumnWrite() { 只有列出的字段会写入: ```java -@Test -public void includeColumnWrite() { - String fileName = "includeColumnFieldWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; Set includeColumns = Collections.singleton("date"); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .includeColumnFieldNames(includeColumns) .sheet() .doWrite(data()); @@ -119,10 +117,10 @@ public class IndexData { 通过 `@ExcelProperty` 注解的 `index` 属性指定列顺序。 ```java -@Test -public void indexWrite() { - String fileName = "indexWrite" + System.currentTimeMillis() + ".xlsx"; - FesodSheet.write(fileName, IndexData.class) +void main() { + String pathname = "path/to/demo.xlsx"; + + FesodSheet.write(pathname, IndexData.class) .sheet() .doWrite(data()); } @@ -154,12 +152,11 @@ public void indexWrite() { 列的顺序取决于 POJO,而不是集合。即使把 `doubleData` 写在 `string` 前面,输出中仍然是 `string` 在前,因为字段就是按这个顺序声明的: ```java -@Test -public void includeColumnOrderWrite() { - String fileName = "includeColumnFieldWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; Set includeColumns = new LinkedHashSet<>(Arrays.asList("doubleData", "string")); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .includeColumnFieldNames(includeColumns) .sheet() .doWrite(data()); @@ -184,12 +181,11 @@ public void includeColumnOrderWrite() { 加上 `.orderByIncludeColumn(true)`,即可改为按集合的顺序排列: ```java -@Test -public void orderByIncludeColumnWrite() { - String fileName = "includeColumnFieldWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; Set includeColumns = new LinkedHashSet<>(Arrays.asList("doubleData", "string")); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .includeColumnFieldNames(includeColumns) .orderByIncludeColumn(true) .sheet() @@ -223,24 +219,23 @@ public void orderByIncludeColumnWrite() { ### 代码示例 ```java -@Test -public void noModelWrite() { - String fileName = "noModelWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName) + FesodSheet.write(pathname) .head(head()) // 动态头 .sheet("无对象写入") .doWrite(dataList()); } -private List> head() { +List> head() { return Arrays.asList( Collections.singletonList("字符串标题"), Collections.singletonList("数字标题"), Collections.singletonList("日期标题")); } -private List> dataList() { +List> dataList() { List> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(Arrays.asList("字符串" + i, 0.56, new Date())); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/sheet.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/sheet.md index 773ec8b9d..de7685648 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/sheet.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/sheet.md @@ -18,11 +18,10 @@ title: 'Sheet 页' ### 代码示例 ```java -@Test -public void writeSingleSheet() { - String fileName = "repeatedWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter excelWriter = FesodSheet.write(fileName, DemoData.class).build()) { + try (ExcelWriter excelWriter = FesodSheet.write(pathname, DemoData.class).build()) { WriteSheet writeSheet = FesodSheet.writerSheet("Sheet1").build(); for (int i = 0; i < 5; i++) { excelWriter.write(data(), writeSheet); @@ -59,11 +58,10 @@ public void writeSingleSheet() { ### 代码示例 ```java -@Test -public void writeMultiSheet() { - String fileName = "repeatedWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter excelWriter = FesodSheet.write(fileName, DemoData.class).build()) { + try (ExcelWriter excelWriter = FesodSheet.write(pathname, DemoData.class).build()) { for (int i = 0; i < 5; i++) { WriteSheet writeSheet = FesodSheet.writerSheet(i, "Sheet" + i).build(); excelWriter.write(data(), writeSheet); @@ -100,11 +98,10 @@ public void writeMultiSheet() { ### 代码示例 ```java -@Test -public void tableWrite() { - String fileName = "tableWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter excelWriter = FesodSheet.write(fileName).build()) { + try (ExcelWriter excelWriter = FesodSheet.write(pathname).build()) { WriteSheet writeSheet = FesodSheet.writerSheet("Table示例").build(); WriteTable table1 = FesodSheet.writerTable(0).head(DemoData.class).build(); WriteTable table2 = FesodSheet.writerTable(1).head(DemoData.class).build(); diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/simple.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/simple.md index db0bbb20e..ca525004e 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/simple.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/simple.md @@ -56,11 +56,10 @@ Fesod 提供了多种写入方式,包括 `Lambda` 表达式、数据列表、` #### `Lambda` 表达式 ```java -@Test -public void simpleWrite() { - String fileName = "simpleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .sheet("Sheet1") .doWrite(() -> data()); } @@ -69,11 +68,10 @@ public void simpleWrite() { #### 数据列表 ```java -@Test -public void simpleWrite() { - String fileName = "simpleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .sheet("Sheet1") .doWrite(data()); } @@ -82,11 +80,10 @@ public void simpleWrite() { #### `ExcelWriter` 对象 ```java -@Test -public void simpleWrite() { - String fileName = "simpleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - try (ExcelWriter excelWriter = FesodSheet.write(fileName, DemoData.class).build()) { + try (ExcelWriter excelWriter = FesodSheet.write(pathname, DemoData.class).build()) { WriteSheet writeSheet = FesodSheet.writerSheet("Sheet1").build(); excelWriter.write(data(), writeSheet); } diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/style.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/style.md index 7f8307c80..f36611f1e 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/style.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/style.md @@ -47,11 +47,10 @@ public class DemoStyleData { ### 代码示例 ```java -@Test -public void annotationStyleWrite() { - String fileName = "annotationStyleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoStyleData.class) + FesodSheet.write(pathname, DemoStyleData.class) .sheet() .doWrite(data()); } @@ -84,9 +83,8 @@ public void annotationStyleWrite() { ### 代码示例 ```java -@Test -public void handlerStyleWrite() { - String fileName = "handlerStyleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; // 定义表头样式 WriteCellStyle headStyle = new WriteCellStyle(); @@ -107,7 +105,7 @@ public void handlerStyleWrite() { HorizontalCellStyleStrategy styleStrategy = new HorizontalCellStyleStrategy(headStyle, contentStyle); - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(styleStrategy) .sheet("样式模板") .doWrite(data()); @@ -172,11 +170,10 @@ public class CustomCellStyleWriteHandler implements CellWriteHandler { 使用 ```java -@Test -public void customCellStyleWrite() { - String fileName = "customCellStyleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new CustomCellStyleWriteHandler()) .sheet("自定义样式") .doWrite(data()); @@ -194,11 +191,10 @@ public void customCellStyleWrite() { ### 代码示例 ```java -@Test -public void poiStyleWrite() { - String fileName = "poiStyleWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, DemoData.class) + FesodSheet.write(pathname, DemoData.class) .registerWriteHandler(new CellWriteHandler() { @Override public void afterCellDispose(CellWriteHandlerContext context) { @@ -252,11 +248,10 @@ public class WidthAndHeightData { ### 代码示例 ```java -@Test -public void widthAndHeightWrite() { - String fileName = "widthAndHeightWrite" + System.currentTimeMillis() + ".xlsx"; +void main() { + String pathname = "path/to/demo.xlsx"; - FesodSheet.write(fileName, WidthAndHeightData.class) + FesodSheet.write(pathname, WidthAndHeightData.class) .sheet() .doWrite(data()); }