大家好,我是程序员鱼皮。就在昨天,GitHub 上一个知名的开源项目 Easy Excel 官宣停止更新,下面是官方原文:

公告中表示,Easy Excel 将进入维护模式,会进行 Bug 修复,但不再主动新增功能。其实约等于停止更新了,只不过是一种委婉地表达罢了。

可能有同学还不了解 Easy Excel,这是国内主流的 Java 解析 Excel 的开源工具库,在 GitHub 上有 30k+ 的 star。能够帮助开发者用更少的内存从 Excel 中读取数据、或者生成 Excel 文件。官方测试只需要 16M 内存就能读取 75M(46W 行 25 列)的 Excel 文件!

我个人非常喜欢这个库,除了性能高之外,还有很多其他原因。首先是它提供了简单易用的 API 来读写 Excel,比如通过下面这行代码,就能获取到 Excel 中的数据了:

List<DemoData> list = EasyExcel.read(fileName)
  .head(DemoData.class)
  .sheet()
  .doReadSync();

而且它的官方文档写得非常清晰,进一步降低了使用门槛。有一说一,咱们很多国产框架的文档写得都不错~

通过官方文档可以了解到,Easy Excel 支持同步和异步读取、自定义格式转换等操作,能够满足大多数常见的需求了。

我做技术选型时,除了性能和易用性之外,还会特别关注框架的生态和活跃度。很多框架可能做着做着,就突然不更新了,导致后面出了问题也没法解决,只能换一个技术,这种情况可以让开发者瞬间高血压。

Easy Excel 虽然只是一个工具库,但大家可能想象不到维护这样一个小项目,难度有多大。

可以看到该项目光是在 GitHub 上就有 3000 多个 Issues 问题,官方处理了 3000 多个,未处理的也基本很快就回复了。

从提交记录来看,这个项目维护了 6 年,平均每天都要处理几个问题,跟每日任务似的。也看得出来 Easy Excel 官方确实很用心地在维护这个项目,而不是所谓的 KPI 项目,点个赞 !

所谓的 KPI 项目,是指为了绩效或者晋升专门搞的项目,可能评完绩效或者晋升之后,就不再维护了。

这也是我乐意使用 Easy Excel 的原因,但是官方公告中的有一点我还挺在意的:

官方说市面上出现了很多的数据处理工具,我不禁在想,对处理 Excel 表格这个场景来说,还有哪些替代方案呢?

我调研了一些,比如:

1)Apache POI:老牌的文档处理库,被广泛使用于多个大型项目和企业,社区活跃。但内存占用较高,对于大文件的性能并不理想。

2)Excel4J:个人开源的 Excel 处理库,star 数不多,上次更新时间是去年,社区不活跃。

3)Aspose.Cells:功能强大,但是属于商业产品,需要购买许可证,我选择放弃。

4)opencsv:适用于处理 CSV 文件,但是看到它的文档我直接放弃。

逛了一圈下来,我还没有发现免费开源的 Easy Excel 的替代品。不过好在大家不用担心,Easy Excel 仍然是可以正常使用的,不需要急着去找替代方案。

大家有什么好用的数据处理工具、类库或框架么?欢迎评论区留言分享~

更多编程学习资源

6 年 30k star,这个明星项目停止更新!的更多相关文章

  1. 在github上查找star最多的项目

    如何在github上查找star最多的项目 在search中输入stars:>1 就可以查找所有有star的项目,然后右上角根据自己的需要筛选 当我输入stars:>10000的时候,就会 ...

  2. 开发者最爱的Firebug停止更新和维护

        近日,Firebug团队在其官网上宣布,Firebug将不再继续开发和维护,并邀请大家使用Firefox的内置开发工具.     Firebug最初是2006年1月由Joe Hewitt编写, ...

  3. 关于 《cocoapods 的taobao的镜像停止更新问题》

    cocoapods 的ruby.taobao.org 停止更新了!!!!!! 最近一直在改老项目,突然听伙伴说:cocoapods 的ruby.taobao.org 停止更新了.很是吃惊,遂即闯入:h ...

  4. [置顶] 博客停止更新 && 我的大学数年

    博客停止更新 前言: 这些天,一直还没有时间发表这篇博文,近期,做了一个决定:博客更新停止. 我有话说: 这些天来,还真是感谢大家的关注了.从2011年的07至今,2013年的07月,两个年头,写下了 ...

  5. 本博客停止更新,移至purecpp.org

    声明:本博客停止更新,迁移至C++开源社区purecpp.org, 欢迎持续关注!

  6. 本博客迁移到Github,之后停止更新

    本博客之后停止更新或者更新不是很及时,关注博客请移步   http://waylife.github.io 或者 http://blog.13kbook.com   谢谢支持. Update Time ...

  7. xp的停止更新对我们有什么影响?

    微软与2001年推出windows xp系统,这款系统的成功毋庸置疑,但由于太过成功,微软在随后推出的vista系统和win7系统普及起来却异常困难.大多数人已经习惯了xp的操作,再加上一批铁杆旧电脑 ...

  8. iOS:开发常用GitHub开源项目(持续更新)

    IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire ...

  9. 七夕节 看到很多停止更新的blog 莫名有点淡淡的忧桑

    又是一年七夕.又是一年单身.看到很多停止更新的blog, 仿佛看到了一茬一茬的程序猿 进入it 圈 又离开it圈,就有莫名的忧桑

  10. 我的CSDN博客停止更新通告

    我的CSDN博客停止更新通告 自从2001年在CSDN发表第一篇博客開始,至今天(2014年6月11日)为止,算起来我己经在CSDN博客上"呆"了13年.共发表251篇原创文章,有 ...

随机推荐

  1. 横扫鸿蒙弹窗乱象,SmartDialog出世

    前言 但凡用过鸿蒙原生弹窗的小伙伴,就能体会到它们是有多么的难用和奇葩,什么AlertDialog,CustomDialog,SubWindow,bindXxx,只要大家用心去体验,就能发现他们有很多 ...

  2. Linux下SPI驱动详解

    更多嵌入式原创文章,请关注公众号:一口Linux 1. SPI总线 1.1. SPI总线概述 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口. ...

  3. C#学习日记

    2023年9月9日 工具visual stdio 2019 窗口名称修改 lable标签 button 点击事件 点击换颜色 formLearn.ActiveForm.BackColor = Colo ...

  4. element UI el-table 合并单元格

    效果图如下: template 代码: <el-table ref="fundBalanceDailyReportTable" :span-method="obje ...

  5. win11(含win10)自带的一键镜像备份与还原方法

    winxp和win7时代小伙伴们备份或恢复系统时大都采用类似一键ghost类的软件制作系统盘的映像,当遇到故障时再恢复,但win10和win11其实自带有这种映像制作和还原功能,我们就再也不需要额外安 ...

  6. 消息队列的对比测试与RocketMQ使用扩展

    消息队列的对比测试与RocketMQ使用扩展     本文的主要内容包括以下几个方面: 原有的消息技术选型 RocketMQ与kafka 测试对比 如何构建自己的消息队列服务 RocketMQ扩展改造 ...

  7. 中文关键字检索分析-导出到csv或者excel-多文件或文件夹-使用python和asyncio和pandas的dataframe

    1.02版本 把原来的tab一个个拼接成文件输出,改成pandas的dataframe 使用asyncio库来使用协程,但是测试下来速度好像是差不多的.可能速度太快了,没能很好的测出来差异. 原来的最 ...

  8. RxJS 系列 – Mathematical and Aggregate Operators

    前言 前几篇介绍过了 Creation Operators Filtering Operators Join Creation Operators Error Handling Operators T ...

  9. CSS – Sass & SCSS

    前言 CSS 代码多了就不好管理了, 这是它语法先天的不足. Sass 就是加强它语法的, Sass 为 CSS 引入了一些 JS 语言的特性, 比如 variable, function, para ...

  10. OData – Custom Serialize & Deserialize

    前言 本来计划用 Custom Serialize 来解决 OData 不支持 [JsonPropertyName] 的问题. 但是后来发现 Custom Serialize 并不能解决这个问题. C ...