Flex_DataGrid导出excel 两种方式 poi和as3xls.doc_第1页
Flex_DataGrid导出excel 两种方式 poi和as3xls.doc_第2页
Flex_DataGrid导出excel 两种方式 poi和as3xls.doc_第3页
Flex_DataGrid导出excel 两种方式 poi和as3xls.doc_第4页
免费预览已结束,剩余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工具类,Util.as,如下:package cy.util import 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; import 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 =myDg.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 columns) fields.push(field.dataField.toString(); /*第一行的值,取值为myDg的headerText*/ sheet.setCell(0,i,field.headerText.toString(); i+; /*循环设置行的值*/ for(var r:int=0;rrowCount;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,SampleExport.xls); /*回调函数*/ function insertRecordInSheet(row:int,sheet:Sheet,record:Object):void var colCount:int = myDg.columnCount; 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列名域值recordfield与value是否相等*/ if (recordfield.toString() = value) /*写入表格中*/ sheet.setCell(row,i,value); i+; 第二步:编写mxml界面 Test.mxml !CDATA Bindable private var dg:Array; Bindable private var fields:Array = new Array(); private function init():void dg=new Array(); for(var i:int=0;i 到此即可完成。2.Flex用poi导出excel,server端struts2,利用poi生成excel:Java代码:public void excel() System.out.println(come on!); HttpServletResponse 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 = 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, HSSFCell.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 H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论