본문 바로가기
안드로이드 자바

[Android][Java]엑셀 파일 등록,읽기

by teamnova 2023. 7. 21.

안녕하세요 이번에는 엑셀파일을 안드로이드에 넣고, 읽는 방법에 대해 알려드리겠습니다.

 

1. 디렉토리 설정을 project로 변경합니다(핑크색으로 표시한 부분 참고)

2.app->src->main 폴데어 assests 폴더 생성후 assets 폴더에 xls 파일 넣습니다.

 

파일 형태

 

3. 엑셀파일을 읽기 위해 라이브러리를 등록합니다.

implementation 'net.sourceforge.jexcelapi:jxl:2.6.12'

 

 

MainActivity에 다음과 같이 코드를 작성합니다.

package com.example.stickodetest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.io.IOException;
import java.io.InputStream;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        readExcel();

    }

    public void readExcel(){//파일 읽기 함수
        try {
            InputStream is = getBaseContext().getResources().getAssets().open("test.xls");
            //엑셀파일
            Workbook wb = Workbook.getWorkbook(is);
            //엑셀 파일이 있다면
            if(wb != null){

                Sheet sheet = wb.getSheet(0);//시트 블러오기

                if(sheet != null){

                    int colTotal = sheet.getColumns(); //전체 컬럼
                    int rowIndexStart = 1; //row 인덱스 시작
                    int rowTotal = sheet.getColumn(colTotal-1).length;

                    StringBuilder sb;
                    for(int row = rowIndexStart; row < rowTotal; row++){

                        sb = new StringBuilder();

                        //col: 컬럼순서, contents: 데이터값
                        for(int col = 0; col < colTotal; col++){
                            String contents = sheet.getCell(col, row).getContents();
                            
                            if(row > 0){
                                Log.d("Main",  col + "번째: "  + contents);
                            }

                        } 
                    }
                }
            }
        } catch (IOException | BiffException e) {
            e.printStackTrace();
        }
    }
}

 

 

위와 같은 단계를 거친 후 실행된 결과는 다음과 같습니다.

실행된 결과

 

 
 

패키지 com.example.stickodetest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.io.IOException;
import java.io.InputStream;
jxl.Sheet 가져오기;
import jxl.Workbook;
import jxl.read.biff.BiffException;


공개 클래스 MainActivity는 AppCompatActivity {를 확장합니다.

@우세하다
보호된 무효 onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
읽기엑셀();

}

public void readExcel(){//파일 읽기
노력하다 {
InputStream is = getBaseContext().getResources().getAssets().open("test.xls");
//엑셀파일
통합 문서 wb = Workbook.getWorkbook(is);
//엑셀 파일이 있다면
if(wb != null){

Sheet sheet = wb.getSheet(0);//시트 블러 가져오기

if(시트 != null){

int colTotal = sheet.getColumns(); //전체적인
int rowIndexStart = 1; //행 절차 시작
int rowTotal = sheet.getColumn(colTotal-1).length;

StringBuilder sb;
for(int 행 = rowIndexStart; 행 < rowTotal; 행++){

sb = 새 StringBuilder();

//col: 빼순서, contents:값 데이터
for(int col = 0; col < colTotal; col++){
문자열 내용 = sheet.getCell(col, row).getContents();

if(행 > 0){
Log.d("메인", col + "번째: " + 내용);
}

}
}
}
}
} catch (IOException | BiffException e) {
e.printStackTrace();
}
}
}