flex datagrid excel打印AS
来源:互联网 发布:js 函数 this 编辑:程序博客网 时间:2024/05/17 03:25
package com.huike.wms.utils.func
{
import com.as3xls.xls.Cell;
import com.as3xls.xls.ExcelFile;
import com.as3xls.xls.Sheet;
import flash.events.*;
import flash.net.FileReference;
import flash.utils.ByteArray;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.controls.DataGrid;
import mx.controls.dataGridClasses.DataGridColumn;
public class ExportExcelUtil
{
[Embed(source='image/ok.gif')]private static var success:Class;
[Embed(source='image/exit.gif')]private static var fail:Class;
public function ExportExcelUtil()
{
}
/**导出Excel表格函数,参数为DataGrid**/
public static function exportToExcel(myDg:DataGrid,excelName:String):void
{
var fields:Array = new Array();
/**生成表对象sheet**/
var sheet:Sheet= new Sheet();
var dataProviderCollection:ArrayCollection =myDg.dataProvider as ArrayCollection;
/**获得表格的行数**/
var rowCount:int = dataProviderCollection.length;
/**设置表格的行数(rowCount+1),列数(myDg.columnCount)**/
sheet.resize(rowCount+1,myDg.columnCount-1);
/**获得DateGrid列的内容**/
var columns:Array = myDg.columns;
/**循环设置列名的值**/
/*var i:int = 0; */
var thenull:DataGridColumn="" as DataGridColumn;
for(var i:int = 1;i<columns.length;i++){
var field:DataGridColumn = columns[i]!=null?columns[i]:thenull;
fields.push(field.dataField.toString());
sheet.setCell(0,i-1,field.headerText.toString()); //加入标题
}
/* for each (var field:DataGridColumn in columns)
{
fields.push(field.dataField.toString());
第一行的值,取值为myDg的headerText
sheet.setCell(0,i,field.headerText.toString());
i++;
}*/
/**循环设置行的值**/
for(var r:int=0;r<rowCount;r++)
{
/**获得dataProviderCollection的每行Item的对象**/
var record:Object =dataProviderCollection.getItemAt(r);
/**调用回调函数写入sheet**/
insertRecordInSheet(r+1,sheet,record);
}
/**生成Excel文件**/
var xls:ExcelFile = new ExcelFile();
/**将sheet写入Excel文件中**/
xls.sheets.addItem(sheet);
/**将xls对象转换为ByteArray流对象**/
var bytes: ByteArray = xls.saveToByteArray();
/**生成新文件域**/
var fr:FileReference = new FileReference();
/**将bytes流对象保存到文件域**/
fr.save(bytes,excelName+".xls");
fr.addEventListener(Event.COMPLETE,ExpSuc);
fr.addEventListener(IOErrorEvent.IO_ERROR,ExpFal);
/**回调函数**/
function insertRecordInSheet(row:int,sheet:Sheet,record:Object):void
{
var colCount:int = dataProviderCollection.length; //当前datadrid 显示的行数
//var colCount:int = myDg.columnCount; //当前datadrid 显示的行数
for(var c:int; c < colCount; c++)
{
var i:int = 0;
for each(var field:String in fields)
{
for each (var value:String in record)
{
/**循环判断myDg列名域值record[field]与value是否相等**/
var calString:String=record[field]!=null?record[field].toString():"";
if (calString == value)
/**写入表格中**/
sheet.setCell(row,i,String.fromCharCode(127)+value);
}
i++;
}
}
}
}
private static function ExpSuc(event:Event):void{
Alert.show("导出Excel成功!","提示信息",4,null,null,success);
}
private static function ExpFal(event:IOErrorEvent):void{
Alert.show("导出失败!请关闭打开的Excel或修改导出文件名!","提示信息",4,null,null,fail);
}
}
}
使用方式 传入datagridID 以及excel表名
{
import com.as3xls.xls.Cell;
import com.as3xls.xls.ExcelFile;
import com.as3xls.xls.Sheet;
import flash.events.*;
import flash.net.FileReference;
import flash.utils.ByteArray;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.controls.DataGrid;
import mx.controls.dataGridClasses.DataGridColumn;
public class ExportExcelUtil
{
[Embed(source='image/ok.gif')]private static var success:Class;
[Embed(source='image/exit.gif')]private static var fail:Class;
public function ExportExcelUtil()
{
}
/**导出Excel表格函数,参数为DataGrid**/
public static function exportToExcel(myDg:DataGrid,excelName:String):void
{
var fields:Array = new Array();
/**生成表对象sheet**/
var sheet:Sheet= new Sheet();
var dataProviderCollection:ArrayCollection =myDg.dataProvider as ArrayCollection;
/**获得表格的行数**/
var rowCount:int = dataProviderCollection.length;
/**设置表格的行数(rowCount+1),列数(myDg.columnCount)**/
sheet.resize(rowCount+1,myDg.columnCount-1);
/**获得DateGrid列的内容**/
var columns:Array = myDg.columns;
/**循环设置列名的值**/
/*var i:int = 0; */
var thenull:DataGridColumn="" as DataGridColumn;
for(var i:int = 1;i<columns.length;i++){
var field:DataGridColumn = columns[i]!=null?columns[i]:thenull;
fields.push(field.dataField.toString());
sheet.setCell(0,i-1,field.headerText.toString()); //加入标题
}
/* for each (var field:DataGridColumn in columns)
{
fields.push(field.dataField.toString());
第一行的值,取值为myDg的headerText
sheet.setCell(0,i,field.headerText.toString());
i++;
}*/
/**循环设置行的值**/
for(var r:int=0;r<rowCount;r++)
{
/**获得dataProviderCollection的每行Item的对象**/
var record:Object =dataProviderCollection.getItemAt(r);
/**调用回调函数写入sheet**/
insertRecordInSheet(r+1,sheet,record);
}
/**生成Excel文件**/
var xls:ExcelFile = new ExcelFile();
/**将sheet写入Excel文件中**/
xls.sheets.addItem(sheet);
/**将xls对象转换为ByteArray流对象**/
var bytes: ByteArray = xls.saveToByteArray();
/**生成新文件域**/
var fr:FileReference = new FileReference();
/**将bytes流对象保存到文件域**/
fr.save(bytes,excelName+".xls");
fr.addEventListener(Event.COMPLETE,ExpSuc);
fr.addEventListener(IOErrorEvent.IO_ERROR,ExpFal);
/**回调函数**/
function insertRecordInSheet(row:int,sheet:Sheet,record:Object):void
{
var colCount:int = dataProviderCollection.length; //当前datadrid 显示的行数
//var colCount:int = myDg.columnCount; //当前datadrid 显示的行数
for(var c:int; c < colCount; c++)
{
var i:int = 0;
for each(var field:String in fields)
{
for each (var value:String in record)
{
/**循环判断myDg列名域值record[field]与value是否相等**/
var calString:String=record[field]!=null?record[field].toString():"";
if (calString == value)
/**写入表格中**/
sheet.setCell(row,i,String.fromCharCode(127)+value);
}
i++;
}
}
}
}
private static function ExpSuc(event:Event):void{
Alert.show("导出Excel成功!","提示信息",4,null,null,success);
}
private static function ExpFal(event:IOErrorEvent):void{
Alert.show("导出失败!请关闭打开的Excel或修改导出文件名!","提示信息",4,null,null,fail);
}
}
}
使用方式 传入datagridID 以及excel表名
- flex datagrid excel打印AS
- flex DataGrid to excel
- flex datagrid中的打印问题
- FLex中 DataGrid导出Excel
- FLex中 DataGrid导出Excel
- FLEX中使用AS动态创建DataGrid
- flex中 AdvancedDataGrid、datagrid导出到excel
- flex 保存datagrid数据到excel中
- Flex实践——Datagrid的打印预览与打印
- Flex实践——Datagrid的打印预览与打印
- Flex把datagrid的内容导出到Excel
- Flex/Air将DataGrid数据导出为CSV/Excel格式
- flex 把datagrid的内容导出到Excel
- flex 从DataGrid列表中导出数据为excel表格
- flex datagrid
- flex datagrid
- Flex通过Java读取Excel(详细流程)----Excel在客户端(DataGrid动态根据Excel生成)
- flex:RemoteObject 和 DataGrid 数据交互, AS 与java 数据类型转换
- 2012年11月编程排行榜:C#一路下跌
- 《转》32位机和64位机下面各类型sizeof的大小
- JavaSist之ClassPool
- 如何获取下拉单选或者radio的value值
- hdu 4303 Hourai Jeweled(树形DP,5级)
- flex datagrid excel打印AS
- sqlServer表类型使用
- github入门
- Android and HTML5 开发手机应用
- svn 简介
- arcgis esri 学习资料网址大全
- ShareSDK 微博空间分享
- 第五章总结(下)
- 隧道技术GRE/PPTP/SSH等学习笔记