看本章之前 請看我的上一篇 Flex導出Excel之as3xls
//工具類 private function exportBySource(source:ArrayCollection,headerArr:Array,dataFiledArr:Array, fileName:String ="test.xls"):void{ // TODO Auto-generated method stub var htmlStr:String = generateHtml(source,headerArr,dataFiledArr); var mbytes:ByteArray = new ByteArray(); mbytes.writeUTFBytes(htmlStr); var exportFile:FileReference = new FileReference(); exportFile.addEventListener(Event.COMPLETE,saveComplete); exportFile.save(mbytes,fileName); } //將dataGrid生成html by Start china public function generateHtml(source:ArrayCollection,headerArr:Array,dataFiledArr:Array):String{ var htmlStr:String=""; htmlStr+=ParameterUtil.htmlBefore; htmlStr+="<table border='1'>" + "<tr class='th'>"; for(var i:int = 0;i<headerArr.length ; i++){ htmlStr+="<td>"+headerArr[i]+"</td>"; } htmlStr+="</tr>"; for(var j:int = 0;j<source.length;j++){ htmlStr+="<tr>"; for(var m:int = 0;m<dataFiledArr.length ;m++){ htmlStr+="<td>"; htmlStr+=source[j][dataFiledArr[m]]; htmlStr+="</td>" } htmlStr+="</tr>" } htmlStr+="</table>"; htmlStr+=ParameterUtil.htmlAfter; return htmlStr; }
exportBySource方法上一節原本就有,去掉了as3xls的相關操作,取而代之的是generateHtml方法,及拼接HTML。