반응형
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>
(참고) 앱 내 폴더에 저장 후 공유할 경우 아래 참고하세요.
반응형
'안드로이드' 카테고리의 다른 글
Android 쿠키 동기화(retrofit2, webview) (0) | 2021.11.18 |
---|---|
Android keystore(debug, release) SHA-1 확인 방법 (1) | 2021.11.18 |
Android Retrofit2 사용하기 (0) | 2021.11.17 |
Android 버전 별 코드 동작(@TargetApi, @RequiresApi) (0) | 2021.11.17 |
Android Dialog, Full Screen Dialog (0) | 2021.11.17 |
최근댓글