반응형

Excel 파일 생성 후 공유하기

  • 외부 저장소 영역의 특정 영역에 엑셀 파일 생성
  • 생성 후 공유하기 실행
  • 라이브러리 : poi jar(poi-3.13-20150929.jar사용, 최신 jar는 최소요구버전이 높음)
  • 링크 : archive.apache.org/dist/poi/release/bin/

 

엑셀 파일 생성(외부 저장소 영역) 후 공유하기

//엑셀파일 생성 후 공유하기
Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet(); // 새로운 시트 생성
 
Row row = sheet.createRow(0); // 새로운 행 생성
Cell cell;
 
cell = row.createCell(0);
cell.setCellValue("시간");
cell = row.createCell(i+1);
cell.setCellValue("값1");
cell = row.createCell(i+1);
cell.setCellValue("값2");
 
for(int i = 0; i < 5; i++){ // 데이터 엑셀에 입력
    //1Row 생성
    row = sheet.createRow(i+1);
 
    //시간
    cell = row.createCell(0);
    cell.setCellValue("시간값"+i);
    //값1
    cell = row.createCell(0);
    cell.setCellValue("값1"+i);
    //값2
    cell = row.createCell(0);
    cell.setCellValue("값2"+i);
}
 
File xlsFile = new File(getExternalFilesDir(null),"test.xls");
File xlsFile = new File(getCacheDir(),fileName);
try{
    FileOutputStream os = new FileOutputStream(xlsFile);
    workbook.write(os); // 외부 저장소에 엑셀 파일 생성
 
    File extRoot = getExternalFilesDir(null);
    String someFile = "/test/some.xls";
 
    //File xlsFile = new File(extRoot, someFile);
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setType("application/excel");//엑셀파일 공유 시
    Uri contentUri = FileProvider.getUriForFile(getApplicationContext(), getApplicationContext().getPackageName() + ".fileprovider", xlsFile);
    shareIntent.putExtra(Intent.EXTRA_STREAM, contentUri);
    startActivity(Intent.createChooser(shareIntent,"엑셀 공유"));
}catch (IOException e){
    e.printStackTrace();
}
Toast.makeText(getApplicationContext(),xlsFile.getAbsolutePath()+"에 저장되었습니다",Toast.LENGTH_SHORT).show();

 

res/xml/file_provider.xml

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path path="Android/data/${applicationId}/" name="files_root" />
    <root-path name="root" path="/" />
</paths>

 

AndroidManifest.xml

<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.fileprovider"
 
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_provider" />
</provider>

 

(참고) 앱 내 폴더에 저장 후 공유할 경우 아래 참고하세요.

https://easy-coding.tistory.com/26

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기