<?xml version="1.0" encoding="utf-8" ?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import com.as3xls.xls.ExcelFile;
import com.as3xls.xls.Sheet;
import flash.events.Event;
import flash.net.FileReference;
import flash.utils.ByteArray;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
private var fl:FileReference;
private function loadExcel():void
{
fl = new FileReference();
fl.addEventListener(Event.SELECT, function(e:Event):void { FileReference(e.target).load(); } );
fl.addEventListener(Event.COMPLETE, loadCompleteHandler);
fl.browse();
}
private function loadCompleteHandler(e:Event):void
{
convert(FileReference(e.target).data)
}
private function convert(data:ByteArray):void
{
try
{
var excelFile:ExcelFile = new ExcelFile();
excelFile.loadFromByteArray(data);
var sheet:Sheet = excelFile.sheets[0];
grid.dataProvider = sheet.values;
}
catch(error:Error)
{
Alert.show("Fail to convert excel")
}
}
private function saveCSV():void
{
var arr:Array = (grid.dataProvider.source as Array);
var str:String = "";
for (var i:int = 0; i < arr.length; i++)
{
str += arr[i].toString()
str += "\r\n"
}
fl = new FileReference();
fl.save(str, "astro_"+(new Date().getTime())+".csv");
}
]]>
</mx:Script>
<mx:Button label="Load Excel File from Local" click="loadExcel()" />
<mx:DataGrid id="grid" editable="true" width="450" sortableColumns="true" draggableColumns="false" />
<mx:Button label="Save DataGrid to CSV File" click="saveCSV()" />
</mx:Application>
댓글 없음:
댓글 쓰기