A terminal spreadsheet multitool for exploring, arranging and transforming tabular data across many file formats.
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
Add the fesod-sheet dependency with Maven
- 2
Or add the fesod-sheet dependency with Gradle
- 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
A free, open-source AI Office suite for macOS, Windows and Linux that edits real .docx, .xlsx, .pptx and PDF files with a built-in AI agent.
Browser-based viewer and editor for Word, Excel and PowerPoint files that processes documents locally using WebAssembly.
A single-binary CLI that lets AI agents and developers create, read, and edit Word, Excel, and PowerPoint files without Office installed.
Desktop client for Windows, macOS and Linux that adds transparent, client-side encryption to files stored in Dropbox, Google Drive, OneDrive and other synced cloud folders.
Self-hostable, API-oriented low-code platform that works like a collaborative spreadsheet-database, positioned as an Airtable alternative.