最近需要在客户端生成excel并且打印,本来以为读写excel会有很成熟的框架,结果没想到一脚踏入天坑。
Java 环境下,正常可用的有几种excel处理框架
- POI (最基础框架,有丰富且略为复杂的读写方法)
- EasyExcel (阿里的简单框架,以POI为基础二次封装)
- JExcel (未采用)
但都是服务器端的框架,在 Android 直接引入会有一个连一个的报错需要处理。
此问题最终的解决是需要找一些开发者对 POI 的 Android 兼容的框架,最终帮助到我的是:
https://stackoverflow.com/questions/34644528/noclassdeffounderror-failed-resolution-of-ljavax-xml-stream-xmleventfactory-wi
- https://github.com/andruhon/android5xlsx (适用于 Android 5)
- https://github.com/andruhon/AndroidReadXLSX (适用于 Android 4),两者目前仍基于 Apache POI 3.12
- https://github.com/centic9/poi-on-android/(适用于 Android 5,由我维护),可以更轻松地使用较新版本的 POI 重新编译,例如它目前使用 3.17
- POI-Android - github.com/SUPERCILEX/poi-android 重要提示:要让 POI-Android 运行,必须设置 Fasterxml Impls,如下所述:github.com/ozlerhakan/poiji/issues/31