UPD (09/06/2014): It is no longer necessary to compile with the option --core-library

The task itself is to read the XLSX format using Apache POI XSSF is not at all tricky. Not tricky exactly until you decide to connect this library to your Android application. Unfortunately, googling did not lead to anything - I could not find any real instructions or recommendations on how to use XSSF on Android. In general, no mention of the fact that this library can actually work on Android.
HSSF (XLS) - works without problems, XSSF (XLSX) - could not find anything, only the recommendations process everything with the help of POI somewhere on the server.
Then I reveal what the problem is and how I solved it.
:
')
The fact is that in Android there is a restriction on 65K methods in the application, and for XSSF to work, you need a jar containing Open XML Schemas, which even contains an abbreviated version for POI of about 67K methods.
This suggests the idea that you can try to reduce this whole thing with the help of proguard. However, for some reason it was impossible to reduce the
entire library so that the application worked.
As a result, the library itself was reduced with the help of proguard, and the schemas - manually. Simply with the help of the archiver, I deleted all files from the jar with diagrams that, in my opinion, are not needed for reading XLSX, after that I started the application time after time, tried to read the file and added classes due to the absence of which the application crashed. In the end - earned!
An example of a running application can be found on GitHub:
github.com/andruhon/AndroidReadXLSX
The library and its dependencies require classes from javax, which, unfortunately, are not in Android.
This is where the stax-api-1.0.1.jar saves us, but in order to compile the application, you have to add the option --core-library to the DX .
UPD (09/06/2014):
Re-compiled StAX after renaming the namespace "javax" to "aavax", then in all other binarics * .class replaced all strings 'javax / xml / stream', 'javax / xml / namespace' and 'javax.xml.strings' with matching strings with "aavax". After that, the “spoiled” stax-api is packed into a common jar, it will not work separately anyway. Now you can simply copy two JAR files into your lib and enjoy without additional tambourine dances.
Used proguard config (by and large does only '-shrink'):
[at the entrance dom4j-1.6.1.jar, poi-3.10-FINAL-20140208.jar, poi-ooxml-3.10-FINAL-20140208.jar, xmlbeans-2.3.0.jar]
-injars { jar } -outjars poi-min.jar -libraryjars { } -libraryjars {path to /jre/lib} -libraryjars {path to /jdk/lib} -dontoptimize -dontobfuscate -ignorewarnings -keep class org.apache.poi.xssf.** { *; } -keep class org.apache.poi.ss.** { *; } -keep class org.apache.poi.hssf.** { *; } -keep class org.apache.xmlbeans.** { *; }