看了sungang_1120的http://sungang-1120.iteye.com/blog/1944358帖子,做了一下改进,步骤如下:
1.生成excel文件,保存为97-2003版xls文件,内容如下图所示,这样能保证导入不出错,并解决了中文在95版xls中的中文乱码问题:
2. 找到as3xls库,请下载附件改进版的as3xlsUTF8.swc库,google上提供的库在 http://code.google.com/p/as3xls/ down的 as3xls.swc打开97-2003的xls会出错,出现EOF错误,情况如下所示:
3.在flex建立工程,敲入如下代码:
<?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" minWidth="955" minHeight="600"> <fx:Script> <![CDATA[ import com.as3xls.xls.ExcelFile; import com.as3xls.xls.Sheet; import mx.collections.ArrayCollection; import mx.controls.Alert; private var xls : ExcelFile; private var sheet : Sheet; [Bindable] public var arr:ArrayCollection = new ArrayCollection(); [Bindable] private var stateText : String = "请选择要导入的Execl表."; private var file : FileReference = new FileReference(); protected override function createChildren():void { super.createChildren(); file.addEventListener(Event.SELECT,file_select); //是否上传完成 file.addEventListener(Event.COMPLETE,file_complete); //上传的进度 file.addEventListener(ProgressEvent.PROGRESS,file_progerss); } //选择上传的Execl private function file_select(e:Event):void { stateText = file.name; } //上传状态 private function file_complete(e:Event):void { var byteArray:ByteArray = new ByteArray(); byteArray = file.data; byteArray.position = 0; xls = new ExcelFile(); xls.loadFromByteArray(byteArray); sheet = xls.sheets[0]; var i:int; var len : int = sheet.values.length; for(i = 2; i < len - 1; i++) { arr.addItem({xm:sheet.values[i][0],nl:sheet.values[i][1],xl:sheet.values[i][2],lxdh:sheet.values[i][3],lxdz:sheet.values[i][4]}); } Alert.okLabel = "确定"; Alert.show("共导入:"+(sheet.values.length - 3)+"条数据!","恭喜",Alert.OK); } //进度 private function file_progerss(e:ProgressEvent):void { progressBar.label = "已上传 " + Math.round(100 * e.bytesLoaded / e.bytesTotal) + "%"; progressBar.setProgress(Math.round(100 * e.bytesLoaded / e.bytesTotal),100); } //上传 private function upload():void { if(file.size > 0) { file.load(); } } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <s:Panel x="23" y="34" width="334" height="177" title="读取Execl" dropShadowVisible="false"> <s:TextInput x="25" y="27" width="196" text="{stateText}"/> <s:Button x="239" y="27" label="浏览..." click="file.browse();"/> <mx:ProgressBar x="25" y="78" height="26" width="195" id="progressBar"/> <s:Button x="239" y="72" label="上传" click="upload();"/> </s:Panel> <mx:DataGrid x="365" y="57" width="404" height="154" dataProvider="{arr}"> <mx:columns> <mx:DataGridColumn headerText="姓名" dataField="xm"/> <mx:DataGridColumn headerText="年龄" dataField="nl"/> <mx:DataGridColumn headerText="学历" dataField="xl"/> <mx:DataGridColumn headerText="联系电话" dataField="lxdh"/> <mx:DataGridColumn headerText="联系地址" dataField="lxdz"/> </mx:columns> </mx:DataGrid> <s:Label x="365" y="37" text="显示导入的Execl数据" width="160" height="22"/> </s:Application>
4.运行结果如下图所示:
相关推荐
根据给定的信息,本文将详细解释Flex框架中利用as3xls库进行Excel文件读写的实现原理及具体步骤。 ### 一、as3xls简介 as3xls 是一个用于Adobe Flex和ActionScript 3项目的库,它允许开发人员轻松地创建、读取和...
通过as3xls导入导出Excel文件的工程代码,含目前口碑最好的as3xls源代码。
AS3XLS库填补了这一空白,使得开发者可以方便地在AS3项目中导入和导出Excel数据。例如,你可以用它来创建报表、分析用户输入的数据或者与其他系统交换数据。 AS3XLS-1.0.1.swc是该库的编译后的库文件,可以直接集成...
"as3xls" 是一个这样的库,它允许在Flex或AS3环境中读写Microsoft Excel文件。标题提到的"as3xls flex可用"表明这个库已经经过验证,可以在Flex项目中正常工作。 Flex是一个基于Adobe Flash Player或Adobe AIR的...
《AS3XLS-1.0.1:在Flex中高效处理Excel数据的库》 在数字时代,数据处理和交换已经成为日常工作中不可或缺的一部分。在Adobe Flex开发环境中,与Excel文件进行交互的需求尤为常见,例如从Datagrid组件导出数据到...
9. **部署场景**:AS3XLS通常用于Flash应用程序、Flex项目或是使用ActionScript 3.0的任何其他环境,用于实现与Excel交互的功能。 10. **示例代码**:库通常会附带示例代码,帮助开发者快速理解和使用其功能。在...
由于ActionScript 3.0是Flash Professional和Flex Builder等工具的主要编程语言,因此`as3xls`为开发者提供了一种在Flash应用程序中操作Excel数据的便捷方式。 在使用`as3xls`之前,确保你已经正确地将库导入到你的...
as3xls库允许AS3开发者无需借助服务器端技术就能直接处理这些文件,这在创建交互式Web应用或需要在客户端处理Excel数据的场景中非常有用。 AS3是Adobe Flash Player和Adobe AIR应用程序的主要编程语言。通过使用as3...
as3xls 只支持excel2003版本以下的,不支持扩展名为.xlsx的excel,而类库Rxlsx支持.xlsx的excel。原Rxlsx不支持日期格式,读取日期单元格的数据会变成数字,本人将excel的日期格式整理出来,并在读取的时候重新将...
本知识点主要聚焦于Flex3如何实现数据的读写操作,特别是与Microsoft Excel文件的交互,即“Flex3ReadWriteExcel(flex3导入导出excel表格)”。这在实际业务场景中非常常见,例如数据分析、报表生成以及数据交换等。 ...
本资源为用于flex导入或导出excel的类库as3xls,现存网上的类库as3xls最大问题是对中文不够支持,虽然网上早已支持中文的as3xls,但存在最大三个问题: 1:在导入excel操作中,如果excel的公式里带中文的,则该公式...
3. **As3Xlsx库的使用**:在导入Excel文件时,首先需要将FileReference对象的data属性转换为ByteArray,然后使用As3Xlsx库的API读取数据。例如,可以创建一个Workbook对象,用ByteArray数据初始化,再遍历其工作表和...
在IT行业中,Flex Datagrid是一种常用的UI组件,用于展示和管理大量数据,它在Adobe Flex或ActionScript 3(AS3)开发环境中广泛使用。这个主题涉及到如何将Flex Datagrid中的数据保存到Excel文件,以及从Excel文件...
`as3xlsUTF8`提供了一个`saveAs()`方法,用于生成二进制的Excel文件数据,你可以将这些数据保存到服务器或本地磁盘。例如: ```actionscript var xlsData:ByteArray = workbook.saveAs(); // 然后将xlsData写入到...
4. **编译后的SWC库**:这是预编译的AS3类库,可以直接导入到FlashDevelop、FlexBuilder或其他AS3开发环境中,方便快速集成到项目中。 5. **测试用例**:包含测试脚本,用于验证库的功能是否正常,开发者可以通过...
as3xls 只支持excel2003版本以下的,不支持扩展名为.xlsx的excel,而类库Rxlsx支持.xlsx的excel,用法很简单,只需加载完成excel文件后执行: var excel:Excel = new Excel(fr.data); //fr.data为flex加载excel的...
本文将探讨如何在Adobe Flex中读取包含中文字符的Excel文件,主要涉及使用AS3XLS库来解决这个问题。 首先,AS3XLS是一个ActionScript 3的开源库,专门用于处理Microsoft Excel文件。它允许Flex应用程序创建、读取和...
在AS中导入Excel文件,开发者通常会利用第三方库,如as3xls或Zap2It,这些库提供了读取和写入Excel文件的功能。 在“flexDataGrid导入Excel案例”中,我们可能看到以下关键知识点: 1. **数据导入**:在AS中,导入...