Repolode
apache

apache/fesod

A Java library for reading and writing Excel and CSV spreadsheets with low memory use, suited to large files.

Stars
6,263
Forks
539
Open issues
183
Last commit
21 hours ago

What is it?

Apache Fesod (Incubating) is a Java library for reading and writing spreadsheet files such as xlsx, xls and csv. It is designed so that large files can be processed without loading all rows into memory at once, using stream-based reading with a listener that handles each row as it is parsed.

The library provides a simple static API: a developer defines a Java class annotated with @ExcelProperty to map columns, then calls FesodSheet.read or FesodSheet.write to process a file. Writing a list of objects to a named sheet takes only a few lines of code.

It uses Apache POI as its underlying engine, so projects that already include POI components need to exclude the duplicate POI jars. It requires Java 1.8 or later and is published to Maven Central as fesod-sheet. The project is a continuation of the EasyExcel line of libraries.

Key features

  • 01Stream-based reading keeps memory use low when processing large spreadsheets.
  • 02Annotation-based mapping between Java classes and spreadsheet columns.
  • 03Simple read and write API built around a listener for row-by-row handling.
  • 04Supports xlsx, xls and csv file formats.
  • 05Available from Maven Central and Gradle with Java 1.8 or later.

Use cases

  • Importing user-uploaded Excel files into a Java backend service.
  • Exporting large query results from a database to spreadsheets.
  • Batch processing millions of rows of CSV or Excel data without running out of memory.

Quick start

  1. 1

    Add the fesod-sheet dependency with Maven

  2. 2

    Or add the fesod-sheet dependency with Gradle

  3. 3

    Call FesodSheet.write(fileName, DemoData.class) to write a spreadsheet

Things to know

  • The project is Apache Incubating, so its API and behavior may still change.
  • It uses Apache POI internally, so projects that already include POI must manually exclude the POI jars.

Topics

FAQ

What is fesod?
A Java library for reading and writing Excel and CSV spreadsheets with low memory use, suited to large files. Apache Fesod (Incubating) is a Java library for reading and writing spreadsheet files such as xlsx, xls and csv. It is designed so that large files can be processed without loading all rows into memory at once, using stream-based reading with a listener that handles each row as it is parsed.
Is fesod free to use? What license does it have?
fesod is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is fesod still maintained?
Actively maintained. The last commit to fesod was on Oct 19, 2026.
What can I use fesod for?
Importing user-uploaded Excel files into a Java backend service. Exporting large query results from a database to spreadsheets. Batch processing millions of rows of CSV or Excel data without running out of memory.
How do I install fesod?
Add the fesod-sheet dependency with Maven Or add the fesod-sheet dependency with Gradle Call FesodSheet.write(fileName, DemoData.class) to write a spreadsheet
Where can I get fesod?
The source code and installation instructions are on GitHub: https://github.com/apache/fesod

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects