본문 바로가기
Study/Android

android에서 excel파일 생성하기

by Answer Choi 2019. 5. 15.
반응형

안드로이드에서 Excel파일을 생성하려면 별도의 라이브러리가 필요합니다.

 

1.라이브러리 추가하기

 

https://poi.apache.org/download.html#POI-4.1.0

 

Apache POI - Download Release Artifacts

Apache POI - Download Release Artifacts Available Downloads 09 April 2019 - POI 4.1.0 available The Apache POI team is pleased to

poi.apache.org

위 링크를 눌러 POI 라이브러리를 다운로드 합니다.

 

2019년 4월 9일 현재 4.1.0이 최신버전입니다. 

 

위 그림의 표시된 압축파일을 다운로드 한 후 압축을 풀어줍니다.

 

압축을 풀면 위와같이 많은 파일들이 나오는데, 필요한 것은 poi-4.1.0.jar입니다.

 

android studio에서 메뉴 File-Project Structure를 클릭합니다.

 

라이브러리를 추가하기 위해 + 버튼을 눌러줍니다.

 

Import .JAR/.AAR Package를 선택합니다.

 

왼쪽에 poi-4.1.0이 추가 된것을 확인할 수 있습니다.

 

위의 탭에서 Dependencies를 선택한 후 +버튼을 눌러 Module dependency를 선택합니다.

 

오른쪽의 폴더찾기 버튼을 눌러 poi-4.1.0 라이브러리를 찾아 선택해 줍니다.

 

라이브러리가 선택된 것을 확인한 후 OK를 눌러줍니다.

 

라이브러리가 정상적으로 추가되었습니다.

 

2. Excel파일 만들기

 

이제 본격적으로 Excel 파일을 만듭니다.

 

자세한 사용법은 POI 홈페이지에 자세히 나와있습니다.

 

https://poi.apache.org/components/spreadsheet/quick-guide.html#NewWorkbook

 

Busy Developers' Guide to HSSF and XSSF Features

Busy Developers' Guide to HSSF and XSSF Features Busy Developers' Guide to Features Want to use HSSF and XSSF read and write spreadsheets in a hurry? This guide is for you. If you're after more in-depth coverage of the HSSF and XSSF user-APIs, please consu

poi.apache.org

1) Workbook 생성

 

Workbook wb = new HSSFWorkbook(); //or new XSSFWorkbook();

Excel 파일을 생성한다고 생각하시면 됩니다.

 

주석과 같이 XSSFWorkbook()으로도 생성가능하다고 합니다.

 

2) Sheet 생성

Sheet sheet1 = wb.createSheet("new sheet");
Sheet sheet2 = wb.createSheet("second sheet");

Sheet 생성은 Workbook을 먼저 생성해야만 생성할 수 있습니다.

 

뒤에 이름을 적어주지 않으면 이름이 없는 sheet가 생성됩니다.

 

3) Row 생성

// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);

데이터를 입력하려면 행을 먼저 생성해야 합니다.

 

뒤의 숫자는 행번호 입니다.

 

4) Cell 생성및 데이터 입력

 Cell cell = row.createCell(0);
 cell.setCellValue(1);

위에서 생성된 행에 첫번째 열의 셀을 생성하였습니다.

 

그리고 '1'이라는 데이터를 입력하였습니다.

 

다음 행으로 넘어갈때는 또 다시 3번과 같이 Row를 생성하고,

 

4번과 같이 Cell을 생성하여 데이터를 입력해 주면 됩니다.

 

5) 파일생성

String filename="test.xls";
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
File xls = new File(dir, filename);
try {
	FileOutputStream os = new FileOutputStream(xls);
    wb.write(os); 
} catch (IOException e) {
    e.printStackTrace();
}

저의 경우 파일을 찾기 쉽게 내문서 폴더로 저장을 하였습니다.

 

Line 2 : 내문서의 위치를 가져옵니다.

 

6) 이메일 보내기

Uri uri = Uri.parse("mailto:");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.putExtra(Intent.EXTRA_SUBJECT, "excel file email test";
it.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + dir + "/" + filename));
startActivity(it);

만약 파일을 찾기 힘들다면, 파일 생성과 함께 이메일로도 보낼 수 있습니다.

 

한글도 잘 인식됩니다.^^

반응형

인기글