Select to view content in your preferred language

Get info from xls file to put them in datagrid

1077
0
02-06-2014 03:46 AM
EvelynHernandez
Frequent Contributor
Hello me again.
I need ur help. I want to get info from a xls file (excel file) to put them in a datagrid but i dont know why my code doesnt work properly.
I just hope u can help me guys, thanks 😄

EDIT: I already did it so i leave the code for someone who needs it.

<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"                      xmlns:s="library://ns.adobe.com/flex/spark"                      xmlns:mx="library://ns.adobe.com/flex/mx">                                        <fx:Script>                          <![CDATA[                         import com.as3xls.xls.Cell;                         import com.as3xls.xls.ExcelFile;                         import com.as3xls.xls.Sheet;                         import flash.net.FileReference;                         import  flash.utils.ByteArray;                         import mx.collections.ArrayCollection;                         private var ef:ExcelFile;                         private var ba:ByteArray;                         private var fr:FileReference;                         private var frSave:FileReference;                         [Bindable]private var statCollection:ArrayCollection;                          private function onCreation():void                         {                         ef= new ExcelFile();                         ba= new ByteArray();                         fr= new FileReference();                         frSave= new FileReference();                         statCollection = new ArrayCollection();                         }                          private function importData(event:MouseEvent):void                         {                         fr= new FileReference();                         var fileFilter:FileFilter = new FileFilter("Excel (.xls)","*.xls");                         fr.addEventListener(Event.SELECT,selectXLS);                         fr.browse([fileFilter]);                         }                          private function selectXLS(event:Event):void                         {                                                fr = FileReference(event.target);                         fr.addEventListener(Event.COMPLETE,fileIn);                         fr.load();                         }                          private function fileIn(event:Event):void                         {                              ba = new ByteArray();                              ba = fr.data;                              ef = new ExcelFile();                              ef.loadFromByteArray(ba);                              var sheet:Sheet =ef.sheets[0];                              var tCols:int = sheet.cols;                              var tRows:int = sheet.rows;                              statuslbl.text = "Sheets:-"+ef.sheets.length + "; Rows:-"+ tRows +"; Colls :-" + tCols;                              statCollection = new ArrayCollection();                              for(var i:int=0;i<=tRows;i++)                                    {                              var statsEnry:Object = new Object();                              statsEnry.eventLabel = sheet.getCell(i,0).value;                              statsEnry.totalEvent = sheet.getCell(i,1).value;                              if(statsEnry.EntryLabel !="")                              statCollection.addItem(statsEnry);                              }                         }                          private function generateXLS(event:MouseEvent):void                   {                         var s:Sheet = new Sheet();                         s.resize(statCollection.length+1,2);                         s.setCell(0,0,"Event Label");                         s.setCell(0,1,"Total Events");                                           for(var j:int=0;j<statCollection.length;j++)                                    {                                          s.setCell(j+1,0,statCollection.eventLabel);                                          s.setCell(j+1,1,statCollection.totalEvent);                                    }                              var fileTosave:ExcelFile = new ExcelFile();                              fileTosave.sheets.addItem(s);                              var fileBytes:ByteArray = fileTosave.saveToByteArray();                              frSave = new FileReference();                              frSave.save(fileBytes,"New.xls");                              statuslbl.text = "File Saved";                   }                          private function generateCSV(event:MouseEvent):void             {                                      var csv:String="";                         csv +="Event Label,"                         csv +="Total Events\r";                                                  for(var j:int=0;j<statCollection.length;j++)                              {                              csv +=statCollection.eventLabel+",";                              csv +=statCollection.totalEvent+"\r";                              }                                                  frSave = new FileReference();                                                  frSave.save(csv,"NewCSV.csv");                                                  statuslbl.text = "File Saved";                          }                          ]]>                    </fx:Script>       <fx:Declarations>             <mx:SeriesSlide id="seriesSlide" duration="1000" direction="up"/>       </fx:Declarations>                            <s:Button x="10" y="26" width="116" height="26" label="Importar xls" id="importBtn" click="importData(event)"/>                                                          <s:Button x="33" y="437" width="107" height="30" id="exportcsvBtn" label="Export csv" click="generateCSV(event)"/>             <s:Button x="467" y="438" width="107" height="30" id="exportxlsBtn" label="Export xls" click="generateXLS(event)"/>             <s:Label id="statuslbl" x="197" y="30" width="212" height="22"/>                            <mx:DataGrid id="grid" x="10" y="60" width="593" height="252" editable="true"                          dragEnabled="true" dropEnabled="true" dataProvider="{statCollection}">                          <mx:columns>                                    <mx:DataGridColumn headerText="Event Label" dataField="eventLabel"/>                                    <mx:DataGridColumn headerText="Total Events" dataField="totalEvent"/>                                </mx:columns>                    </mx:DataGrid>                    <mx:PieChart dataProvider="{statCollection}" x="872" y="58" id="eventPieChart" showDataTips="true" width="279" height="254">                         <mx:series>                                    <mx:PieSeries field="totalEvent" nameField="eventLabel" labelPosition="inside"/>                         </mx:series>                    </mx:PieChart>             <mx:Legend dataProvider="{eventPieChart}" labelPlacement="right" x="611" y="62" width="238" height="250"/>        </s:Application> 
Tags (2)
0 Kudos
0 Replies