# RapidExcel **Repository Path**: robinhoodjim/rapidexcel ## Basic Information - **Project Name**: RapidExcel - **Description**: 不依赖Apache POI的大数据量Excel读写工具 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-19 - **Last Updated**: 2025-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README RapidExcel ========= [![Build Status](https://github.com/robinhood-jim/RapidExcel/actions/workflows/maven.yml/badge.svg?branch=main)](https://github.com/robinhood-jim/RapidExcel/actions) 非基于Apache POI的大数据量下的Excel读写工具,支持简单表格的大数据量读写,以Stax方式进行读取,Stream模式下内存仅保留一组数据对象,读取可采用对外内存进行文件内容缓存,减少JVM占用, 实测120W数据,6个字段,文件大小90M左右,读取在10多秒内(机器 E3-1231v3 内存16G) ## Prerequisites - JDK 11,Maven 3.8.6以上. - 在项目pom中添加以下: ```xml org.robin.rapidexcel core 0.1 ``` ## Examples ### 简单表格读写 ```java ExcelSheetProp.Builder builder = ExcelSheetProp.Builder.newBuilder(); //define Excel column metadata builder.addColumnProp(new ExcelColumnProp("name", "name", Const.META_TYPE_STRING, false)); ...... try(WorkBook workBook=new WorkBook(new File("D:/test2.xlsx"))){ int sheetNum= workBook.getSheetNum(); for(int i=0;i stream= workBook.openStream(sheet,builder.build()); .... } } ``` ### 单Sheet内容写入 120W记录,6个字段,结果文件90M左右,包含日期字段和公式字段,耗时19秒左右,(机器 E3-1231v3 内存16G) ```java ExcelSheetProp.Builder builder = ExcelSheetProp.Builder.newBuilder(); //define Excel column metadata builder.addColumnProp(new ExcelColumnProp("name", "name", Const.META_TYPE_STRING, false)); ...... Map cachedMap=new HashMap<>(); try(SingleWorkBook workBook=new SingleWorkBook(new File("d:/test111.xlsx"),0,builder.build())){ for(int j=0;j<1200;j++){ ...... //mock data workBook.writeRow(cachedMap); } } ```