Flex读取Excel

来源:互联网 发布:ug编程教程百度云盘 编辑:程序博客网 时间:2024/04/29 18:23




MXML代码:

<mx:DataGrid id="dg"/><mx:Button label="上传导入文件" click="upload()"/>  

Actionscript代码:

/** * 点击文件选择弹出框 * */private function upload():void{file = new FileReference();file.addEventListener(Event.SELECT, file_select);file.addEventListener(Event.COMPLETE, file_complete); file.addEventListener(ProgressEvent.PROGRESS, file_progress); file.browse();}/** * 选择了excel之后 * */private function file_select (e:Event):void { if (file.size > 0) { file.load();} } /** * excel加载完毕 * */private function file_complete (e:Event):void { xls = new ExcelFile();try{xls.loadFromByteArray(e.target.data);}catch(eofe:EOFError){trace(eofe);}var sheet:Sheet = xls.sheets[0];//sheet.rowsdp = sheet.values;dp.removeItemAt(sheet.rows);dg.dataProvider = dp;} /** * 进度条控制 * */private function file_progress (e:ProgressEvent):void { progressBar.label = Math.round(100 * e.bytesLoaded / e.bytesTotal) + "%";progressBar.setProgress(Math.round(100 * e.bytesLoaded / e.bytesTotal), 100);} 



运行截图:







全部代码:


<?xml version="1.0" encoding="utf-8"?><s:WindowedApplication 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:Declarations><!-- Place non-visual elements (e.g., services, value objects) here --></fx:Declarations><fx:Script><![CDATA[import com.as3xls.xls.ExcelFile;import com.as3xls.xls.Sheet;import mx.collections.ArrayCollection;import mx.controls.Alert;import mx.controls.Image;import mx.core.IVisualElement;private var file:FileReference; private var xls:ExcelFile;var dp:ArrayCollection = new ArrayCollection;/** * 点击文件选择弹出框 * */private function upload():void{file = new FileReference();file.addEventListener(Event.SELECT, file_select);file.addEventListener(Event.COMPLETE, file_complete); file.addEventListener(ProgressEvent.PROGRESS, file_progress); file.browse();}/** * 选择了excel之后 * */private function file_select (e:Event):void { if (file.size > 0) { file.load();} } /** * excel加载完毕 * */private function file_complete (e:Event):void { xls = new ExcelFile();try{xls.loadFromByteArray(e.target.data);}catch(eofe:EOFError){trace(eofe);}var sheet:Sheet = xls.sheets[0];//sheet.rowsdp = sheet.values;dp.removeItemAt(sheet.rows);dg.dataProvider = dp;} /** * 进度条控制 * */private function file_progress (e:ProgressEvent):void { progressBar.label = Math.round(100 * e.bytesLoaded / e.bytesTotal) + "%";progressBar.setProgress(Math.round(100 * e.bytesLoaded / e.bytesTotal), 100);} /** * 获取表格数据 * */protected function gainDgData(event:MouseEvent):void{var s:String = "";var shuju:ArrayCollection = dg.dataProvider as ArrayCollection;//行数:shuju.source.length-1 范围:0 到 shuju.source.length-2for(var i:uint = 0 ; i < shuju.source.length-1 ; i++){ //一行一行(一条记录一条记录)的遍历//每一行的列数为shuju[i]//s += shuju[i][0].value; }//var t1 = shuju.source.length;}]]></fx:Script><mx:Panel width="800" height="600" layout="vertical" title="上传示例"   paddingLeft="20" paddingBottom="20" paddingRight="20"   paddingTop="20"><mx:HBox>  <mx:ProgressBar id="progressBar" minimum="0" maximum="100"/><mx:Button label="上传导入文件" click="upload()"/>  </mx:HBox>  <mx:DataGrid id="dg"/><mx:Button label="获取表格数据" click="gainDgData(event)"/><mx:TextArea id="gainData" editable="false"/></mx:Panel></s:WindowedApplication>



感谢网友贡献的as3xlsUTF8.swc : http://pan.baidu.com/share/link?shareid=1679735864&uk=3173173520 

api:http://pan.baidu.com/share/link?shareid=1683301117&uk=3173173520

代码下载:http://pan.baidu.com/share/link?shareid=1661052420&uk=3173173520

excel导入导出:http://pan.baidu.com/share/link?shareid=1670602033&uk=3173173520


0 0
原创粉丝点击