Flex 导出 Excel 表格

excel.as文件

package yes3d.utils
{
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.navigateToURL;

public class Execl
{
public function Execl()
{
}
/**
* 导出excel
*/
public function load(url:String,keyids:String,fields:):void
{
//用post方式发送数据
var urlStr:String=url+'?keyids='+keyids;
var u:URLRequest = new URLRequest(urlStr);
u.method = URLRequestMethod.POST;

navigateToURL(u,"_self");
}
}

}



视图层sendExcel.mxml
服务端excel.php
header(”Content-type:application/vnd.ms-excel”);
header(”Content-Disposition:filename=”.date(’Y-m-d’,time()).”.xls”);
?>
$_REQUEST['keyid']
$_REQUEST['keyid']

完成,其实生成图片这种功能FLEX也是要通过服务端的。
昨天写了个FLEX导出EXCEL的例子,今天写一个FLEX导出图像的例子,其实原理一样,都是通过服务端进行。
注意把组件处理为图像的类库要下载下来,http://code.google.com/p/as3corelib/
flex把组件处理为图像字节流的类ExplortImage.as
package utils
{
import com.adobe.images.JPGEncoder;
import flash.display.BitmapData;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.navigateToURL;
import flash.utils.ByteArray;
import mx.core.UIComponent;
public class ExportImage
{
public function ExportImage()
{
}
/**
* 把图像发送到服务端,转为图像输出
*/
public function sendImageByte(target:UIComponent,url:String):void
{
var request:URLRequest = new URLRequest(url);
request.contentType = ‘applicatoin/octet-stream’;
request.data = getJPGByteArray(target);
request.method = URLRequestMethod.POST;
navigateToURL(request, “_blank”);
}
/**
* 把目标组件转换为图像数组
*/
private function getJPGByteArray(target:UIComponent):ByteArray
{
var bitmapData : BitmapData = new BitmapData(target.width, target.height);
bitmapData.draw(target);
var jpg : JPGEncoder = new JPGEncoder(80);
var jpgByteArray : ByteArray = jpg.encode(bitmapData);
return jpgByteArray;
}
}
}

表现层自己随便写什么什么东西进去都行test.mxml吧



import utils.ExportImage;
private var exportImage:ExportImage=new ExportImage;
]]>































下面就是服务端的代码了,非常简单,是把FLEX发过来的数据转为图像输出。
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) {
$jpg = $GLOBALS["HTTP_RAW_POST_DATA"];

header('Content-Type: image/jpeg');

header("Content-Disposition: attachment; filename=".time().".jpg");

echo $jpg;
}
?>

本文来源于 冰山上的播客 http://xinsync.xju.edu.cn , 原文地址:http://xinsync.xju.edu.cn/index.php/archives/4148

你可能感兴趣的:(Flex)