explaingit

alibaba/easyexcel

33,722JavaAudience · developerComplexity · 2/5StaleLicenseSetup · easy

TLDR

Java library for reading and writing large Excel files efficiently using streaming, keeping memory usage low regardless of file size.

Mindmap

mindmap
  root((repo))
    What it does
      Stream Excel files
      Row-by-row processing
      Minimal memory usage
    Formats supported
      XLS files
      XLSX files
    Use cases
      Bulk data import
      Large report export
      Batch processing
    Tech stack
      Java
      Maven
    Key features
      Object mapping
      Listener callbacks
      Enterprise scale

Things people build with this

USE CASE 1

Import bulk user-uploaded spreadsheet data into a Java backend application without memory crashes.

USE CASE 2

Export large reports with millions of rows to Excel files efficiently.

USE CASE 3

Process batch data pipelines that read and transform spreadsheet data row-by-row.

Tech stack

JavaMaven

Getting it running

Difficulty · easy Time to first run · 5min
Use freely for any purpose including commercial. Keep the notice and disclose changes to the patent grant.

In plain English

EasyExcel is a Java library from Alibaba designed to read and write Excel files quickly and without running out of memory, even when those files are very large. Traditional Java libraries for Excel, such as Apache POI, load the entire spreadsheet into RAM at once, which causes crashes or extreme slowness when files contain hundreds of thousands of rows. EasyExcel solves this by processing Excel files row-by-row in a streaming fashion, keeping memory usage minimal regardless of file size. According to the README, it can read a 75 MB Excel file with 460,000 rows using only about 16 MB of memory in roughly 23 seconds. The library works by letting you define a plain Java class that maps to a row of your spreadsheet, each field corresponds to a column. You then pass that class and a listener (a piece of code that gets called once per row) to EasyExcel, and it handles the rest. Writing works the same way in reverse: you provide a list of objects and EasyExcel produces the file. It supports both the older .xls format and the modern .xlsx format. Someone would use EasyExcel in a Java backend application that needs to import bulk data uploaded by users, export large reports, or handle batch data processing pipelines that involve spreadsheets. It is especially useful in enterprise systems where data exports can easily reach millions of rows. The README notes the project is entering maintenance mode, with bug fixes continuing but no new features planned. The tech stack is Java, distributed as a Maven dependency. Note: the README is primarily written in Chinese.

Copy-paste prompts

Prompt 1
Show me how to read a large Excel file in Java using EasyExcel with a custom listener that processes each row.
Prompt 2
How do I write a list of Java objects to an Excel file using EasyExcel?
Prompt 3
Set up EasyExcel in my Maven project and map a spreadsheet column to a Java class field.
Prompt 4
Compare memory usage: read a 75 MB Excel file with EasyExcel versus Apache POI.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.