• This repository has been archived on 21/Nov/2022
  • Stars
    star
    114
  • Rank 308,031 (Top 7 %)
  • Language
    Kotlin
  • License
    Apache License 2.0
  • Created about 7 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

📈 Apache POI for Android

POI Android

Build Status

POIA is a simple library enabling Apache POI usage on Android.

Table of Contents

Installation

Add JitPack to your repositories:

allprojects {
    repositories {
        // ...
        maven { url 'https://jitpack.io' }
    }
}

And the POIA dependency itself:

implementation "com.github.SUPERCILEX.poi-android:poi:$poiVersion"

If you're using proguard, also add:

implementation "com.github.SUPERCILEX.poi-android:proguard:$poiVersion"

If you want source code and documentation, add the real Apache POI dependency as compileOnly:

compileOnly "org.apache.poi:poi-ooxml:$poiVersion"

Updating Apache POI

If you need a newer version of Apache POI than is provided by this transpiler, updating is as simple as making a fork and changing a few lines of code:

  1. Fork the repo and update Apache POI
    1. PSA: you can find Apache POI release notes here
  2. Simply replace SUPERCILEX in the Gradle dependency with your own GitHub username
  3. That's it, it's that simple! 🚀

Notes

XSSFWorkbook (*.xlsx) does not work on pre-L (API < 21) devices. A simple solution is to show the user some error message and gracefully downgrade to HSSFWorkbook (*.xls):

val workbook = if (isUnsupportedDevice) {
    showToast(getString(R.string.export_unsupported_device_rationale))
    HSSFWorkbook()
} else {
    XSSFWorkbook()
}

// Example unsupportedDevice property
val isUnsupportedDevice by lazy { VERSION.SDK_INT < VERSION_CODES.LOLLIPOP || isLowRamDevice }

Make sure to test your implementation thoroughly pre-L since HSSFWorkbook only supports a subset of the Workbook's APIs and might throw a UOE. Wikipedia even goes so far as to call it the "Horrible SpreadSheet Format" so consider yourself warned. 😁