플렉스를 만지다보면 엑셀 파일을 파싱한다거나 , 또 가공한 데이터를 엑셀 파일로 저장해야 하는경우가 종종 있다.
파일 첨부 :
이럴때 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 파일 첨부 :
'공부방 > Flex' 카테고리의 다른 글
[Flex] Textinput 동적 생성 (0) | 2012.02.13 |
---|---|
[Flex] Flash Player 10에서 로컬 파일을 읽고 쓰는 방법 (0) | 2012.02.13 |
[Flex] Flex에 IFream을 적용하여 웹 페이지 삽입하기 (0) | 2012.02.13 |
[Flex] -static-link-runtime-shared-libraries Warning 이 발생했을때 (0) | 2012.02.13 |
[Flex] 폰트 동적 추가 하기 (0) | 2012.02.13 |