본문 바로가기

IT

jxl (Java Excel Library) 를 이용한 기존 xls 파일을 복사하여 사용하기

반응형

 개발중 정리된 정보를 excel 파일로 변환하여 데이터를 추출가공하는 부분이 있어서 정리합니다.


 일반적으로 사용할 엑셀파일을 서식과 포맷을 정의한 temp 엑셀파일을 생성해서 저장후 이를 꺼내서 데이터만 cell 에 입력하고, 이파일을 저장하는 방법으로 많이 사용하게 됩니다. (직접적으로 cell 단위 서식까지 신경써가면서 작업하기에는 코딩이 너무 많아 집니다.)


 하여~

 서식이 정의된 temp 엑셀파일(temp.xls로 하겠습니다.)을 복사하여 사용하는 방법을 적어보겠습니다.


 간단한 테스트 코드이므로 응용하는 방식은 개발자에 따라 달라질 수 있습니다. (여기서는 제가 진행한 안드로이드 코드를 기반으로 합니다.)




 위에 보이는 같이 적당한 곳에 서식이 정의된 temp_log.xls 파일을 저는 assets 폴더에 저장해 놓았습니다. (안드로이드의 경우 assets에 대한 접근이 생각보다 손쉽기때문입니다.)


 자 코드는 다음과 같습니다.



try {
	// 외장메모리에 엑셀파일을 저장하기 위한 디렉토리
	String strDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TEST/";
	// 새로 생성하는 엑셀파일명
	String strFileName = "copyedTempLog.xls";

	// assets/excel/temp_log.xls 파일을 로딩합니다.
	Workbook tempWorkbook = Workbook.getWorkbook(mContext.getAssets().open("excel/temp_log.xls"));
	
	// WritableWorkbook 을 temp_log.xls 파일을 기반으로 동일하게 생성합니다.
	WritableWorkbook writableWorkbook = Workbook.createWorkbook(new File(strDir, strFileName), tempWorkbook);
	
	/** 이후 엑셀파일에 데이터를 입력하는 작업 진행 */
	
	// 신규생성한 엑셀파일을 실제로 지정된 파일에 쓰기 후 닫기
	writableWorkbook.write();
	writableWorkbook.close();
	tempWorkbook.close();
} catch (Exception e) {
	e.printStackTrace();
}


 간단히 이미 작성된 xls 파일을 기반으로 새로운 xls 파일을 작성하는 방법을 알아보았습니다. 끝.

반응형