《FlexDataGrid导出excel两种方式poi和asxls》由会员分享,可在线阅读,更多相关《FlexDataGrid导出excel两种方式poi和asxls(5页珍藏版)》请在金锄头文库上搜索。
1、Flex_DataGrid 导出导出 excel1.使用使用 as3xls-1.0.1.SWC 包做的包做的 Flex 界面界面 DateGrid 数据导出数据导出 Excel表格。表格。注意: 1.生成的 Excel 为旧版本,需要微软 office 才能打开,金山 WPS 版本不兼容。 2.as3xls-1.0.1.SWC 解决 as3xls-1.0.swc 的中文乱码问题,附件提供。附件:支持中文版的 as3xls 下载地址:as3xls.swc3.现在 flex 项目上面添加 as3xls-1.0.1.SWC 库文件,添加步骤如下:第一步:创建第一步:创建 as 工具类,工具类,Uti
2、l.as,如下如下:package cy.utilimport com.as3xls.xls.Cell;import mx.collections.ArrayCollection;import flash.events.*;import .FileReference;import com.as3xls.xls.Sheet;import com.as3xls.xls.ExcelFile;import mx.controls.Alert;import mx.controls.DataGrid;import mx.controls.dataGridClasses.DataGridColumn;imp
3、ort flash.utils.ByteArray;import mx.controls.Alert;public class Utilpublic function Util()/*导出 Excel 表格函数,参数为 DataGrid*/public static function exportToExcel(myDg:DataGrid):void var fields:Array = new Array(); /*生成表对象 sheet*/var sheet:Sheet= new Sheet();var dataProviderCollection:ArrayCollection =myD
4、g.dataProvider as ArrayCollection;/*获得表格的行数*/var rowCount:int = dataProviderCollection.length;/*设置表格的行数(rowCount+1),列数(myDg.columnCount)*/sheet.resize(rowCount+1,myDg.columnCount);/*获得 DateGrid 列的内容*/var columns:Array = myDg.columns; /*循环设置列名的值*/var i:int = 0; for each (var field:DataGridColumn in c
5、olumns) fields.push(field.dataField.toString(); /*第一行的值,取值为 myDg 的 headerText*/sheet.setCell(0,i,field.headerText.toString(); i+; /*循环设置行的值*/for(var r:int=0;r到此即可完成。2.Flex 用用 poi 导出导出 excel,server 端端 struts2,利用,利用 poi 生成生成excel:Java 代码:public void excel() System.out.println(“come on!“); HttpServletR
6、esponse response = ServletActionContext.getResponse(); try /设置返回类型为 excel response.setContentType(“application/vnd.ms-excel; charset=UTF-8“); /设置返回文件名为 aaa.xls response.setHeader(“Content-Disposition“, “filename=aaa.xls“); response.setHeader(“Cache-Control“, “no-cache“); /利用 poi 生成 excel int index =
7、 1; HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); HSSFRow row = sheet.createRow(index+); HSSFCell cell = row.createCell(0, HSSFCell.CELL_TYPE_STRING); HSSFRichTextString str = new HSSFRichTextString(“1“); cell.setCellValue(str); cell = row.createCell(1, HSSFCe
8、ll.CELL_TYPE_STRING); str = new HSSFRichTextString(“2“); cell.setCellValue(str); cell = row.createCell(2, HSSFCell.CELL_TYPE_STRING); str = new HSSFRichTextString(“3“); cell.setCellValue(str); cell = row.createCell(3, HSSFCell.CELL_TYPE_STRING); str = new HSSFRichTextString(“4“); cell.setCellValue(str); /将生成的 excel 通过 response 返回 workbook.write(response.getOutputStream(); catch (Exception e) e.printStackTrace(); client 端 flex,demo: