Skip to content

Conversation

@psxjoy
Copy link

@psxjoy psxjoy commented Nov 18, 2025

Purpose of the pull request

What's changed?

Checklist

  • I have read the Contributor Guide.
  • I have written the necessary doc or comment.
  • I have added the necessary unit tests and all cases have passed.

delei and others added 3 commits November 17, 2025 20:37
* docs: Rename FastExcel to FesodSheet

* docs: rename documentation files and update content for

* docs: update terminology from Excel to spreadsheet

---------

Co-authored-by: Shuxin Pan <[email protected]>
…omprehensive tests for date formatting (apache#610)

* refactor: remove deprecated format field from ExcelProperty and add comprehensive tests for date formatting

* style: add license header to ExcelPropertyFormatTest.java

* refactor: clean up import statements in ExcelPropertyFormatTest.java for clarity and consistency

* refactor: update sheet names and comments in ExcelPropertyFormatTest.java for clarity

---------

Co-authored-by: DeleiGuo <[email protected]>
Co-authored-by: Shuxin Pan <[email protected]>
# Conflicts:
#	website/docs/sheet/help/parameter.md
#	website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/help/parameter.md
@gemini-code-assist
Copy link

Summary of Changes

Hello @psxjoy, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request primarily focuses on a comprehensive refactoring and rebranding effort for the project's spreadsheet handling capabilities. It involves removing deprecated date formatting methods, introducing a new test suite for annotation-based date/time formatting, and extensively updating the documentation. The core changes include renaming classes and dependencies from 'FastExcel' to 'FesodSheet' and 'Fesod' to align with a broader 'spreadsheet' focus, along with corresponding updates in code examples and build configurations to reflect these new names and structure.

Highlights

  • Deprecation Removal: The deprecated format() method and its associated DateTimeFormat import have been removed from the ExcelProperty.java annotation, streamlining date/time formatting to rely on dedicated annotations.
  • New Date/Time Formatting Tests: A new test file, ExcelPropertyFormatTest.java, has been added to thoroughly validate the DateTimeFormat annotation. This includes tests for various date/time patterns, handling of Chinese characters in patterns, multiple formats per row, and proper behavior with null date fields.
  • Documentation Restructuring and Renaming: Numerous documentation files have been reorganized and renamed, moving into a new website/docs/sheet/ directory. This creates a dedicated section for 'Fesod Sheet' content, improving the overall structure and navigation of the project's documentation.
  • Terminology Update: Across the entire documentation and code examples, the terms 'Excel' and 'FastExcel' have been consistently replaced with 'spreadsheet' and 'Fesod' or 'FesodSheet' respectively. This change reflects a broader scope and updated branding for the project.
  • Dependency Updates: The Maven and Gradle dependency configurations have been updated, changing the groupId from cn.idev.excel to org.apache.fesod and the artifactId from fastexcel to fesod. This is a significant update to the project's build and package naming conventions.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a large-scale refactoring effort, primarily focused on renaming the project from FastExcel to Fesod and FesodSheet. It also involves updating documentation to use more generic terms like 'spreadsheet' instead of 'Excel'. The changes are extensive, including file renames, path updates in configuration files, and content modifications across numerous documentation files. The refactoring appears to be consistent and well-executed for the most part. However, I've identified a few areas for improvement in the newly added test file, ExcelPropertyFormatTest.java, where the deprecated FastExcel class is still in use, and some unused code has been included. My specific feedback is provided in the comments below.

Comment on lines +97 to +99
FastExcel.write(fileName, ChinesePatternSample.class)
.sheet("ChineseFormat")
.doWrite(Collections.singletonList(sample));

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

As part of the project's renaming, the deprecated FastExcel class should be replaced with FesodSheet for consistency.

Suggested change
FastExcel.write(fileName, ChinesePatternSample.class)
.sheet("ChineseFormat")
.doWrite(Collections.singletonList(sample));
FesodSheet.write(fileName, ChinesePatternSample.class)
.sheet("ChineseFormat")
.doWrite(Collections.singletonList(sample));

s.setDateDash(LocalDate.of(2024, 12, 31));
s.setDateTimeMinute(LocalDateTime.of(2025, 3, 4, 15, 20));
String file = tempDir.resolve("multi_pattern.xlsx").toString();
FastExcel.write(file, MultiPatternSample.class).sheet("MultiFormat").doWrite(Collections.singletonList(s));

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

To align with the new project naming conventions, please replace the usage of the deprecated FastExcel class with FesodSheet.

Suggested change
FastExcel.write(file, MultiPatternSample.class).sheet("MultiFormat").doWrite(Collections.singletonList(s));
FesodSheet.write(file, MultiPatternSample.class).sheet("MultiFormat").doWrite(Collections.singletonList(s));

Comment on lines +144 to +175
/**
* Write Date with pattern, read to String field with annotation pattern, verify the read string matches the formatted value.
*/
@Data
static class WriteDateModel {
@ExcelProperty
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
private Date eventTime;
}

@Data
static class ReadStringModel {
@ExcelProperty
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
private String eventTime; // Should be formatted as string when reading
}

static class CapturingListener implements ReadListener<ReadStringModel> {
private final List<ReadStringModel> list = new ArrayList<>();

@Override
public void invoke(ReadStringModel data, AnalysisContext context) {
list.add(data);
}

@Override
public void doAfterAllAnalysed(AnalysisContext context) {}

List<ReadStringModel> getList() {
return list;
}
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The classes WriteDateModel, ReadStringModel, and CapturingListener, along with the associated Javadoc, are defined but not used within this test file. This dead code should be removed to improve code clarity and maintainability.

public void testNullDateFieldWritesBlank(@TempDir Path tempDir) throws IOException {
NullDateSample sample = new NullDateSample();
String file = tempDir.resolve("null_date.xlsx").toString();
FastExcel.write(file, NullDateSample.class).sheet("Null").doWrite(Collections.singletonList(sample));

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Please update this call to use FesodSheet instead of the deprecated FastExcel class, in line with the project's refactoring.

Suggested change
FastExcel.write(file, NullDateSample.class).sheet("Null").doWrite(Collections.singletonList(sample));
FesodSheet.write(file, NullDateSample.class).sheet("Null").doWrite(Collections.singletonList(sample));

@liugddx liugddx requested a review from Copilot November 19, 2025 03:09
Copilot finished reviewing on behalf of liugddx November 19, 2025 03:10
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request performs a comprehensive migration from "FastExcel" to "Fesod" (Apache Fesod Incubating) across the entire codebase, including documentation, code examples, and configuration files. The changes reflect the project's transition to the Apache Software Foundation.

Key changes:

  • Renamed all references from FastExcel to FesodSheet in code examples and documentation
  • Updated package identifiers from cn.idev.excel to org.apache.fesod
  • Reorganized documentation structure with new "fesod-sheet" category
  • Updated terminology from "Excel" to "spreadsheet" throughout documentation
  • Removed deprecated format attribute from @ExcelProperty annotation
  • Added comprehensive test coverage for annotation formatting

Reviewed Changes

Copilot reviewed 76 out of 76 changed files in this pull request and generated no comments.

Show a summary per file
File Description
website/src/pages/index.js Updated GitHub repository link from fast-excel to apache/fesod
website/src/css/custom.css Added new announcement bar styling with themed colors
website/sidebars.js Restructured sidebar to group read/write/fill/help under new "fesod-sheet" category
website/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/**/*.md Updated all Chinese documentation with FesodSheet naming and spreadsheet terminology
website/docs/sheet/**/*.md Updated all English documentation with FesodSheet naming and spreadsheet terminology
website/i18n/zh-cn/docusaurus-plugin-content-docs/current/quickstart/*.md Updated quickstart guides with new package coordinates and terminology
website/docs/quickstart/*.md Updated English quickstart guides with new package coordinates
website/i18n/*/code.json Updated localized strings to use "spreadsheet" instead of "Excel"
website/i18n/*/docusaurus-plugin-content-docs/current.json Added "fesod-sheet" category labels
fesod/src/main/java/org/apache/fesod/sheet/annotation/ExcelProperty.java Removed deprecated format() attribute
fesod/src/test/java/org/apache/fesod/sheet/annotation/ExcelPropertyFormatTest.java Added comprehensive tests for date/time format annotations

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants