Flex4 读取Xls表格数据

首先定义变量

           private var file:FileReference = new FileReference();
           private var xls:ExcelFile;

          private var stateText:String = "请选择一个文件";


第二步添加监听

            file.addEventListener(Event.SELECT,file_select);
            file.addEventListener(Event.COMPLETE,file_complete);
            file.addEventListener(IOErrorEvent.IO_ERROR,file_progress);


第三步添加事件函数

//选择文件的事件
        private function file_select(e:Event):void{
            stateText = "选择了文件"+file.name;
            textinput.text = stateText;
            upload();
        }
        //上传完毕后的事件
        private function file_complete(e:Event):void{
            //生成xls文件
            xls = new ExcelFile();
            //加载数据
            xls.loadFromByteArray(e.target.data);
            
            var sheet:Sheet = xls.sheets[0];
            
            xlsSet = sheet.values;
            //数据赋值
            resultSet = getArrayCollection(xlsSet);
           
        }
        
        private function file_progress(e:ProgressEvent):void{
            
            //判断progressBar是否为空
            if(progressBar !=null){
                
                progressBar.label = "已上传";//+Math.round(100*e.bytesLoaded/e.bytesTotal)+“%”;
                progressBar.setProgress(Math.round(100*e.bytesLoaded/e.bytesTotal),100);
                
            }
        }
        //加载xls数据的方法
        private function upload():void{
            if(file.size > 0){
                file.load();
            }
        }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import mx.controls.CheckBox; import mx.controls.Alert; import com.as3xls.xls.ExcelFile; import com.as3xls.xls.Sheet; import flash.filesystem.*; [Bindable] private var dp:Array = [ {idx:1, names: "test1", sex: "b" }, {idx:2, names: "test2", sex: "g" } ]; public function doSelect(o:Object):void { Alert.show("行的数据分别是:"+o.idx+"/"+o.names+"/"+o.sex); } private var sheet:Sheet; private function onCreate():void { var excelFile:ExcelFile = new ExcelFile(); sheet = new Sheet(); sheet.resize(10, 10); sheet.setCell(0, 0, "Today's date:"); sheet.setCell(0, 1, new Date()); excelFile.sheets.addItem(sheet); var mbytes:ByteArray = excelFile.saveToByteArray(); var stream:FileStream = new FileStream(); var docsDir:File = File.documentsDirectory.resolvePath("abc.xls"); // 定死文件名 try { docsDir.browseForSave("Save As"); docsDir.addEventListener(Event.SELECT, saveData); } catch (error:Error) { trace("Failed:", error.message) } function saveData(event:Event):void { var newFile:File = event.target as File; if (!newFile.exists) { var stream:FileStream = new FileStream(); stream.open(newFile, FileMode.WRITE); stream.writeBytes(mbytes); // 写文件流 stream.close(); } } } ]]> </mx:Script> <mx:Panel> <mx:Button label="导出" click="onCreate()"/> <mx:DataGrid id="dg1" dataProvider ="{dp}"> <mx:columns> <mx:DataGridColumn width="20" headerText="" > <mx:itemRenderer> <mx:Component> <mx:CheckBox change=" {outerDocument.doSelect(data as Object)} " /> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn> <mx:DataGridColumn headerText="names" dataField="names" width="200" /> <mx:DataGridColumn headerText="sex" dataField="sex" width="300" /> </mx:columns> </mx:DataGrid> </mx:Panel> </mx:WindowedApplication>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值