상세 컨텐츠

본문 제목

[안드로이드] 엑셀(xls) 파일 등록, 읽기

안드로이드

by aries574 2020. 4. 16. 18:18

본문


엑셀파일을 안드로이드 자체에 넣고, 직접 읽어드리고 싶을 때 어떻게 해야 할까요

 

1. 디렉토리 설정을 android -> project로 변경

 

2. app -> src -> main 폴더에 assets폴더생성 후 -> assets폴더에 xls 파일을 넣는다.

 

 

 

3. 엑셀파일을 읽기 위해서 필요한 라이브러리를 등록한다.

Gradle Scripts폴더 -> build.gradle(Module:app)

 

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

 

4. 등록한 라이브러리의 동기화를 해준다. (빨갛게 동그라미 친 버튼을 클릭)

 

 

5.이제 등록한 엑셀파일을 읽어봅시다.

예제로 넣은 파일의 이름은 user.xls

이름, 나이, 주소로 이루어진 간단한 파일입니다.

 

6. 엑셀파일 읽는 메소드 만들기

public class MainActivity extends AppCompatActivity {


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

        readExcel();

    }//onCreate

    public void readExcel(){

        //파일 읽기
        try {
            InputStream is = getBaseContext().getResources().getAssets().open("user.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();

//                            Log.d("Main", "row: " + row + "col: " + col  +"contents"  + contents);

                            if(row > 0){
                                Log.d("Main",  col + "번째: "  + contents);
                            }

                        } //내부 For

                    }//바깥 for
                }//if(sheet체크)
            }//if(wb체크)
        } catch (IOException | BiffException e) {
            e.printStackTrace();
        }
    }
}//MainActivity

 

7. 실행 후 화면(로그로 출력했습니다.)

이중 for문으로 돌려서 한줄씩 출력을 해줍니다.

2022.03.02 - [안드로이드] - [안드로이드] SQLite RecyclerView 연락처 만드는 방법 part1 - 조회

반응형

관련글 더보기

댓글 영역