`

Flex利用as3xls导入excel数据表

    博客分类:
  • Flex
 
阅读更多

看了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.运行结果如下图所示:



 

  • 大小: 29.6 KB
  • 大小: 49.1 KB
  • 大小: 34.9 KB
分享到:
评论

相关推荐

    flex的as3xls读写excel

    根据给定的信息,本文将详细解释Flex框架中利用as3xls库进行Excel文件读写的实现原理及具体步骤。 ### 一、as3xls简介 as3xls 是一个用于Adobe Flex和ActionScript 3项目的库,它允许开发人员轻松地创建、读取和...

    as3xls导入导出Excel工程代码

    通过as3xls导入导出Excel文件的工程代码,含目前口碑最好的as3xls源代码。

    as3xls(支持中文)

    AS3XLS库填补了这一空白,使得开发者可以方便地在AS3项目中导入和导出Excel数据。例如,你可以用它来创建报表、分析用户输入的数据或者与其他系统交换数据。 AS3XLS-1.0.1.swc是该库的编译后的库文件,可以直接集成...

    as3xls flex可用 as项目需包括相应mx类库 含api

    "as3xls" 是一个这样的库,它允许在Flex或AS3环境中读写Microsoft Excel文件。标题提到的"as3xls flex可用"表明这个库已经经过验证,可以在Flex项目中正常工作。 Flex是一个基于Adobe Flash Player或Adobe AIR的...

    as3xls-1.0.1.swc

    《AS3XLS-1.0.1:在Flex中高效处理Excel数据的库》 在数字时代,数据处理和交换已经成为日常工作中不可或缺的一部分。在Adobe Flex开发环境中,与Excel文件进行交互的需求尤为常见,例如从Datagrid组件导出数据到...

    as3xls-原始版+支持中文版

    9. **部署场景**:AS3XLS通常用于Flash应用程序、Flex项目或是使用ActionScript 3.0的任何其他环境,用于实现与Excel交互的功能。 10. **示例代码**:库通常会附带示例代码,帮助开发者快速理解和使用其功能。在...

    as3xls 解析 Excel

    由于ActionScript 3.0是Flash Professional和Flex Builder等工具的主要编程语言,因此`as3xls`为开发者提供了一种在Flash应用程序中操作Excel数据的便捷方式。 在使用`as3xls`之前,确保你已经正确地将库导入到你的...

    as3xls-1.0.1

    as3xls库允许AS3开发者无需借助服务器端技术就能直接处理这些文件,这在创建交互式Web应用或需要在客户端处理Excel数据的场景中非常有用。 AS3是Adobe Flash Player和Adobe AIR应用程序的主要编程语言。通过使用as3...

    flex导入excel2007版本以上并支持日期格式的类库Rxlsx

    as3xls 只支持excel2003版本以下的,不支持扩展名为.xlsx的excel,而类库Rxlsx支持.xlsx的excel。原Rxlsx不支持日期格式,读取日期单元格的数据会变成数字,本人将excel的日期格式整理出来,并在读取的时候重新将...

    Flex3ReadWriteExcel(flex3导入导出excel表格)

    本知识点主要聚焦于Flex3如何实现数据的读写操作,特别是与Microsoft Excel文件的交互,即“Flex3ReadWriteExcel(flex3导入导出excel表格)”。这在实际业务场景中非常常见,例如数据分析、报表生成以及数据交换等。 ...

    完美支持中文和日期格式的as3xls

    本资源为用于flex导入或导出excel的类库as3xls,现存网上的类库as3xls最大问题是对中文不够支持,虽然网上早已支持中文的as3xls,但存在最大三个问题: 1:在导入excel操作中,如果excel的公式里带中文的,则该公式...

    Flex导入Excel文件的应用部分代码

    3. **As3Xlsx库的使用**:在导入Excel文件时,首先需要将FileReference对象的data属性转换为ByteArray,然后使用As3Xlsx库的API读取数据。例如,可以创建一个Workbook对象,用ByteArray数据初始化,再遍历其工作表和...

    flex datagrid 数据保存到excel以及从excel读取数据

    在IT行业中,Flex Datagrid是一种常用的UI组件,用于展示和管理大量数据,它在Adobe Flex或ActionScript 3(AS3)开发环境中广泛使用。这个主题涉及到如何将Flex Datagrid中的数据保存到Excel文件,以及从Excel文件...

    Flex as3xlsUTF8导出Excel类库文档API

    `as3xlsUTF8`提供了一个`saveAs()`方法,用于生成二进制的Excel文件数据,你可以将这些数据保存到服务器或本地磁盘。例如: ```actionscript var xlsData:ByteArray = workbook.saveAs(); // 然后将xlsData写入到...

    as3xls_all

    4. **编译后的SWC库**:这是预编译的AS3类库,可以直接导入到FlashDevelop、FlexBuilder或其他AS3开发环境中,方便快速集成到项目中。 5. **测试用例**:包含测试脚本,用于验证库的功能是否正常,开发者可以通过...

    flex导入excel2007版本以上的类库Rxlsx.swc

    as3xls 只支持excel2003版本以下的,不支持扩展名为.xlsx的excel,而类库Rxlsx支持.xlsx的excel,用法很简单,只需加载完成excel文件后执行: var excel:Excel = new Excel(fr.data); //fr.data为flex加载excel的...

    flex读取excel(含中文字符)的解决

    本文将探讨如何在Adobe Flex中读取包含中文字符的Excel文件,主要涉及使用AS3XLS库来解决这个问题。 首先,AS3XLS是一个ActionScript 3的开源库,专门用于处理Microsoft Excel文件。它允许Flex应用程序创建、读取和...

    flexDataGrid导入Excle案例

    在AS中导入Excel文件,开发者通常会利用第三方库,如as3xls或Zap2It,这些库提供了读取和写入Excel文件的功能。 在“flexDataGrid导入Excel案例”中,我们可能看到以下关键知识点: 1. **数据导入**:在AS中,导入...

Global site tag (gtag.js) - Google Analytics