Android で POI 3.x を使う方法を調べたので書いておきます。(POI 4.x はよく分かりませんでした。)
-
まず Android Studio でプロジェクトを作ります。
-
参考にした記事 のリポジトリから PoiSampleWorkbook.xlsx をダウンロードして、assets フォルダを作って その中に入れます。
-
app/build.gradle の依存関係に POI のライブラリを追加します。
diff
1 dependencies {
2 // 略
3
4+ // POI 3.10-FINAL の場合はこれだけ
5+ //implementation 'org.apache.poi:poi-ooxml:3.10-FINAL'
6
7+ // POI 3.17 の場合
8+ implementation 'org.apache.poi:poi-ooxml:3.17'
9+ implementation 'org.apache.xmlbeans:xmlbeans:3.1.0'
10+ implementation 'javax.xml.stream:stax-api:1.0'
11+ implementation 'com.fasterxml:aalto-xml:1.2.2'
↑ diff になってなかったので修正しました。緑の行が追加された部分なので、貼り付けて行頭の + を削除してください。
- あとはこんな感じ。
Kotlin
1import org.apache.poi.ss.usermodel.Cell
2import org.apache.poi.ss.usermodel.WorkbookFactory
3
4// 略
5
6 fun readWorkbook() {
7 val stream = assets.open("PoiSampleWorkbook.xlsx")
8 val book = WorkbookFactory.create(stream)
9
10 val sheet = book.getSheet("Sheet1")
11 sheet.rowIterator().asSequence().forEach { row ->
12 val values = row.cellIterator().asSequence().map { cell ->
13 when (cell.cellType) {
14 Cell.CELL_TYPE_NUMERIC -> cell.numericCellValue.toString()
15 Cell.CELL_TYPE_STRING -> cell.stringCellValue
16 else -> throw RuntimeException("CellType=${cell.cellType}]")
17 }
18 }
19 println(values.toList())
20
21 }
22
23 book.close()
24 }
ちなみに、POI 4.x を使った記事 も見つけましたが、.xls にしか対応してないようで、.xlsx を開くとエラーになります。
(ファイルアプリから開く部分は参考になると思います。)
build.gradle は 2 つあると思いますが、app フォルダの中にあるやつというか、build.gradle (Module: アプリ名.app) と表示される方を開くと、下の方に dependencies { 〜 } というのがあるので、その中に追加してください。