zoukankan      html  css  js  c++  java
  • flash Buider 4.0 中用AS3实现从datagrid中导出Excel

    前面要实现一个导出Excel文件的功能,查找的很多的资料,基本都是组成html代码再交由后台php处理。这里直接用AS3对Datagrid进行处理并生成Excel文件下载。欢迎提出宝贵意见。

    导出和Datagrid显示一样的Excel表格。

    其中要在项目lib中添加一个SWC文件:下载

    中间还可以设置,是否导出Datagrid中隐藏的列。        

             //导出Excel的函数-------------------------------------------------------------
    			//实现思路,先获取datagrid中显示的行和列的数目,在生成生成Excel表格
    			private var str:String = "";  
    			private var sheet:Sheet;  
    			private var mbytes:ByteArray;  
    			private var file:FileReference;  
    			private function onCreate(dg:DataGrid):void {  
    				//Alert.show(toString() , "tishi");
    				
    				var selectedRow:int; 
    				var tempCount:int=10000; 
    				var rCount:int; //数据行数
    				var lCount:int = 0;
    				selectedRow=dg.selectedIndex;
    				dg.selectedIndex=tempCount; 
    				rCount=dg.selectedIndex+1; 
    				dg.selectedIndex=selectedRow; 
    				/*
    				Alert.show(rCount.toString() , "行数");
    				//Alert.show(prisonersList.getItemAt(1).cPersonNo,"tishi");
    				Alert.show(dg.columns[1].headerText + prisonersList.getItemAt(0)[dg.columns[1].dataField],"行名称+行值");
    				
    				if(dg.columns[1].visible)
    					Alert.show(dg.columns.length.toString() , "列数目");
    				*/
    				var oldlCount:int = dg.columns.length;
    				for(var i:int = 0; i < oldlCount;i++)
    					if(dg.columns[i].visible)
    						lCount++;
    					else
    						break;
    				
    					//dg.dataProvider.getItemAt(0)[dg.columns[1].dataField]
    				
    				var excelFile:ExcelFile = new ExcelFile();  
    				for(var i:int=0; i<rCount;i++){  
    					  
    					for(var j:int = 0; j < lCount; j++){  
    							excelFile.sheets.addItem(generateSheet(0,j,dg.columns[j].headerText));  
    							excelFile.sheets.addItem(generateSheet( i+1 , j , prisonersList.getItemAt(i)[dg.columns[j].dataField]));  
    					}  
    				} 
    				
    				mbytes = excelFile.saveToByteArray();     
    				
    				file = new FileReference();  
    				try  
    				{  
    					file.save(mbytes,"基本信息管理.xls"); // 定死文件名  
    				}  
    				catch (error:Error)  
    				{  
    					trace("Failed:", error.message)  
    				}  
    				
    				function generateSheet(i:int,j:int,o:String):Sheet{  
    					if(!sheet){  
    						sheet = new Sheet();  
    						sheet.resize(dataGrid_prisonersList.selectedIndices.length+10,dataGrid_prisonersList.columnCount+10);
    					}  
    					sheet.setCell(i, j, String.fromCharCode(127)+o);  
    					return sheet;  
    				}  
    }
    
  • 相关阅读:
    HDU 4081 Qin Shi Huang's National Road System
    POJ 2075 Tangled in Cables 最小生成树
    HDU 2487 Ugly window
    UVA 11426 GCD Extrme (Ⅲ)
    POJ_1220_Nmber Sequence
    Fibonacci数列对任何数取模都是一个周期数列
    POJ_3321_APPLE_TREE
    webpack配置---设置快捷打包和浏览器自动刷新
    sublime中css输入分号后自动提示的烦恼
    MongoDB的基本使用
  • 原文地址:https://www.cnblogs.com/wyqx/p/2104894.html
Copyright © 2011-2022 走看看