반응형
1. Apache POI 라이브러리 추가하기
dependencies {
...
implementation 'org.apache.poi:poi:3.9'
implementation 'org.apache.poi:poi-ooxml:3.9'
...
}
버전은 3.9로 해주시면 됩니다. 최신버전인 5.2.2로 해봤는데 아래와 같은 에러가 발생했고, 저는 별다른 해결책을 찾지 못했습니다.
그래서 3.9로 진행했씁니다.
1. app/src/main 에 assets 디렉토리만들고 읽으려는 .xlsx 파일 추가하기
2. 엑셀읽어오는 함수 만들기
fun readExcel(fileName: String) {
val assetManager = assets
val inputStream = assetManager.open(fileName) // 파일 열기
val myWorkBook = WorkbookFactory.create(inputStream) // 불러온 파일로 워크북 생성하기
val sheet = myWorkBook.getSheetAt(0) // 읽어올 엑셀의 시트 index 입력
val rowIterator = sheet.iterator()
val activityList = ArrayList<String>()
var rowNo = 0
while(rowIterator.hasNext()) {
val myRow = rowIterator.next() as XSSFRow // HSSFRow 로 캐스팅할 경우 .xls 파일 읽음
if(rowNo != 0) {
val cellIterator = myRow.iterator()
var colNo = 0
while (cellIterator.hasNext()) {
val myCell = cellIterator.next() as XSSFCell // HSSFCell 로 캐스팅할 경우 .xls 파일 읽음
// 특정 열만 읽기
if(colNo == 2) {
a = myCell.toString()
}
// 있는 모든 열 읽기
when (colNo) {
0 -> {//2번째 열이라면,
a = myCell.toString()
}
1 -> {
b = myCell.toString()
}
2 -> {
c = myCell.toString()
}
3 -> {
d = myCell.toString()
}
...
}
// 필요한 경우 해당 데이터 들을 배열이나 리스트에 담아 사용하면 됩니다.
colNo++
}
}
rowNo++
}
}
3. 함수 호출
try {
readExcel("aaa.xlsx")
} catch(e: Exception) {
e.printStackTrace()
}
이상입니다.
다음 포스팅에서는 엑셀을 만들고 파일을 생성하여 내보내는 방법에 대해 알아보겠씁니다.
반응형
'안드로이드' 카테고리의 다른 글
안드로이드 특정버전 설치하는 방법/다운그레이드, 버전 내리기[Electric Eel 등등] (0) | 2023.10.06 |
---|---|
[안드로이드/Android] 폰인지, 태블릿인지 구분하기 (0) | 2023.04.05 |
[안드로이드/Android] onBackPressed Deprecated (0) | 2023.03.28 |
[안드로이드/Android] Compose 에서 onBackPressed = BackHandler (0) | 2023.03.16 |
[안드로이드/Android] Compose BottomNavBar (0) | 2023.03.14 |