You are on page 1of 4

<?xml version="1.0" encoding="utf-8"?> <mx:VBox xmlns:mx="http://www.adobe.

com/2006/mxml" width="100%" height="100%" paddingTop="5" paddingLeft="5" borderThickness="1" paddingRight ="5" paddingBottom="5" borderColor="#000000" backgroundColor="#FFFFFF" borderStyle="solid" cornerRadius="10" > <mx:Script> <![CDATA[ import com.as3xls.xls.Cell; import mx.collections.ArrayCollection; import com.as3xls.xls.Sheet; import com.as3xls.xls.ExcelFile; private var fileReference:FileReference; private var xls:Class; private var sheet:Sheet; [Bindable] private var ItemDGDataProvider:ArrayCollection = new ArrayCollection([ {name:"Item1",value:"21",qty:"3",cost:"12.21"}, {name:"Item2",value:"20",qty:"4",cost:"12.22"}, {name:"Item3",value:"22",qty:"5",cost:"12.23"}, {name:"Item4",value:"23",qty:"2",cost:"12.24"} ]); [Bindable] private var rebateDGDataProvider:ArrayCollection = new ArrayCollection(); private function browseAndUpload():void { fileReference = new FileReference(); fileReference.addEventListener(Event.SELECT,file Reference_Select); fileReference.addEventListener(Event.CANCEL,file Reference_Cancel); fileReference.browse(); } private function fileReference_Select(event:Event):void { fileReference.addEventListener(ProgressEvent.PRO GRESS,fileReference_Progress); fileReference.addEventListener(Event.COMPLETE,fi leReference_Complete); fileReference.addEventListener(IOErrorEvent.IO_E RROR, onLoadError); fileReference.load(); } private function fileReference_Cancel(event:Event):void { fileReference = null; } private function fileReference_Progress(event:ProgressEvent):void { progressBar.visible = true; progressBar.includeInLayout = true; } private function onLoadError():void

{ /*body not implemented*/ } private function fileReference_Complete(event:Event):voi d { var fileData:ByteArray = fileReference.data; var excelFile:ExcelFile = new ExcelFile(); var noOfRows:int; var noOfColumns:int; if(fileData!=null && fileData.length > 0){ excelFile.loadFromByteArray(fileData); var sheet:Sheet = excelFile.sheets[0]; if(sheet!=null) { noOfRows=sheet.rows; noOfColumns = sheet.cols; for(var row:int = 0; row<noOfRow s;row++) { var cellObject:Object ={ }; for(var col:int=0;col<no OfColumns;col++) { var cell:Cell = new Cell(); var cellValue:St ring = new String(); cell = sheet.get Cell(row,col); if(cell!=null) { cellValu e =(cell.v alue).toString(); addPrope rty(cellObject,col,cellValue); } }// inner for loop ends rebateDGDataProvider.add Item(cellObject); } //for loop ends } } progressBar.visible = false; progressBar.includeInLayout =false; rebateScheduleDG.includeInLayout = true; rebateScheduleDG.visible = true; fileReference = null; } private function addProperty(cellObject:Object,index:int,cellValue:String ):void { if(index == 0) cellObject.name = cellValue;

else if(index == 1) cellObject.value = cellValue; else if(index == 2) cellObject.qty = cellValue; else if(index == 3) cellObject.cost = cellValue; } private function exportToExcel():void { sheet = new Sheet(); var dataProviderCollection:ArrayCollection = reb ateByItemDG.dataProvider as ArrayCollection; var rowCount:int = dataProviderCollection.lengt h; sheet.resize(rowCount+4,10); sheet.setCell(0,0,"Item Name"); sheet.setCell(0,1,"Item Cost"); sheet.setCell(0,2,"Item Qty"); sheet.setCell(0,3,"Item Price"); for(var r:int=0;r<rowCount;r++) { var record:Object = dataProviderCollecti on.getItemAt(r); /*insert record starting from row no 2 e lse headers will be overwritten*/ insertRecordInSheet(r+2,sheet,record); } var xls:ExcelFile = new ExcelFile(); xls.sheets.addItem(sheet); var bytes: ByteArray = xls.saveToByteArray(); var fr:FileReference = new FileReference(); fr.save(bytes,"SampleExport.xls"); } private function insertRecordInSheet(row:int,sheet:Sheet ,record:Object):void { var colCount:int = 4; for(var c:int;c<colCount;c++) { sheet.setCell(row,c,record.name); } } ]]> </mx:Script> <mx:Style source="styles\styles.css"/> <mx:VBox width="100%" height="100%"> <mx:Form> <mx:FormHeading label="Excel Import/Export Demo" fontWei ght="bold" color="#2EC200"/> <mx:FormItem label="Do you want to import your items fro m Excel?" fontWeight="bold"> <mx:Form> <mx:FormItem label="Browse you excel fil e" fontWeight="bold"> <mx:Button label="Browse" click= "browseAndUpload()"/> <mx:HBox> <mx:ProgressBar id="prog ressBar" includeInLayout="false" visible="false" indeterminate="true"/> </mx:HBox>

</mx:FormItem> <mx:DataGrid id="rebateScheduleDG" inclu deInLayout="false" visible="false" dataProvider="{rebateDGDataProvider}" width=" 100%"/> </mx:Form> </mx:FormItem> <mx:FormItem label="Export Datagrid items to Excel?" fon tWeight="bold"> <mx:Form> <mx:HBox width="100%" verticalAlign="mid dle"> <mx:DataGrid id="rebateByItemDG" includeInLayout="true" visible="true" dataProvider="{ItemDGDataProvider}" width= "100%" editable="true"/> <mx:Button label="Export To Exce l" click="exportToExcel();"/> </mx:HBox> </mx:Form> </mx:FormItem> </mx:Form> </mx:VBox> </mx:VBox> /*---------------------- Application File--------------------*/ view sourceprint? <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:components="components.* "> <components:ExcelImportAndExportComponent/> </mx:Application>

You might also like