본문 바로가기

공부방/Flex

[Flex] as3xls을 활용한 기본 Excel Improt & Export 테스트

플렉스를 만지다보면 엑셀 파일을 파싱한다거나 , 또 가공한 데이터를 엑셀 파일로 저장해야 하는경우가 종종 있다.

이럴때 as3xml를 사용하면 쉽게 엑셀 파일을 읽고 쓸수 있다.

as3xml의 자세한 정보는 http://code.google.com/p/as3xls/ 에 보면 자세히 나와 있다.

먼저 엑셀파일을 읽어 오는 방법 부터 정리 한다.

사이트에서 다운 받은 as3xml.swc 파일을 프로젝트 라이브러리에 등록시킨 후 아래와 같은 방법으로 구현 가능
 
private var fr:FileReference;
private var ef:ExcelFile; //엑셀 파일
private function init():void{
	fr = new FileReference(); //파일 레퍼런스를 하나 생성한다.
	var fileFilter:FileFilter = new FileFilter("Excel (.xls)", "*.xls;"); //파일 필더 생성
	fr.addEventListener(Event.SELECT, selectXLS);  // 파일 레퍼런스에 이벤트 리스너 등록
	fr.browse([fileFilter]);  //파일 필터 등록
}
private function selectXLS(e:Event):void {
	fr = FileReference(e.target);  // 파일을 열었을때 해당 파일의 타깃으로 한다.
	fr.addEventListener(Event.COMPLETE, fileRead); // 이벤트 리스너 등록(로드 완료후 fileRead 실행)
	fr.load();  //파일을 로드 한다.
}

privaet function fileRead(e:Event):void{
	var ba:byteArray = fr.data; // 읽어온 데이터를 ba에 대입
	ef.loadFromByteArray(ba); // 읽어온 데이터를 엑셀파일 변수에 연결
	var sheet:Sheet = ef.sheets[0];
	var value:String = sheet.getCell(0,0).value; //0,0의 위치에 있는 데이터를 대입
	myDataGrid.dataProvider = sheet.values;  // 해당 데이터를 데이터 그리드에 표시
}

다음 엑셀파일을 쓰는 방법을 정리 한다. 쓰는 법은 더욱 간단하다 .
        var sheet:Sheet = new Sheet();  //sheet를 하나 만들어 준뒤
	sheet.resize(10, 10)  // 요건 잘;; 
	resize는 무슨 역활인지는 잘 모르겠으나 최초에 한번만 수행해주면 된다.
		heet.setCell(0, 0, "hello"); // 다음 0,0에 해당하는 셀에 hello라는 값을 저장
	sheet.setCell(0, 1, new Date()); // 0,1에 날짜를 저장
	var xls:ExcelFile = new ExcelFile();  // 엑셀 파일 변수를 하나 생성
	xls.sheets.addItem(sheet);  // 엑셀 파일 변수에 sheets에 앞서 생성한 sheet를 추가
	var bytes:ByteArray = xls.saveToByteArray();  // 파일로 저장하기위해 byteArray로 엑셀파일 변수의 sheet 정보를 bytes에 저장
	fr = new FileReference(); // 파일 레퍼런스를 하나 만들어 주고
	fr.addEventListener(Event.COMPLETE, onFileSave);  // 이벤트 리스너를 달아 준뒤
	fr.save(bytes, "test.xls"); // test.xls 라는 파일명으로 저장

이렇게 해서 심플하게  엑셀 파일 읽기와 쓰기가 가능하다.
나중 까먹을지도 모르니 심플하게 작성된 해당 소스파일을 첨부한다.
참참~!! 기본적으로는 as3xls가 한글을 지원하지 않지만 구글링을 통해 한글도 지원하는 라이브러리 파일을 첨부한다.
이상 끝~!!!

참고싸이트 :  http://code.google.com/p/as3xls/wiki/Tutorial , http://myboor.tistory.com/3 

파일 첨부 :