方法一:

1.Excel导出主要代码:

try
   {
    var bytes: ByteArray = new ByteArray();
    bytes.writeMultiByte(DataGridExporter.exportSCV(dataGrid),"cn-gb");
    var fr:FileReference = new FileReference();
    var date:Date = new Date();
    var dateTime:String = date.fullYear.toString() + "年" + (Number(date.month) + 1).toString() + "月" + date.date.toString() + "日";
    var excelName:String = dateTime + filename;
    
    fr.save(bytes,excelName);
   }
   catch(e:Error)
   {
    MapUni.errorWindow(e.toString());
   }

2.调用的类DataGridExporter:

public class DataGridExporter
 {
  public function DataGridExporter()
  {
   
  }

public static function exportSCV(dg:DataGrid,csvSeparator:String="\t",lineSeparator:String="\n"):String
  {
   var dataStr:String="";
   var columns:Array=dg.columns;
   var columnCount:int=columns.length;
   var column:DataGridColumn;
   var header:String="";
   var headerGenerated:Boolean=false;
   var dataProvider:Object=dg.dataProvider;
   var rowCount:int=dataProvider.length;
   var dp:Object=null;
   var cursor:IViewCursor=dataProvider.createCursor();
   
   var j:int = 0;
   
   while(!cursor.afterLast)
   {
    var obj:Object=null;
    obj = cursor.current;
    for(var k:int = 0; k <columnCount;k++)
    {
     column=columns[k];
     if(!column.visible)
     {
      continue;
     }
     dataStr += "\""+column.itemToLabel(obj)+"\"";
     if(k<(columnCount-1))
     {
      dataStr+=csvSeparator;
      
     }
     if(!headerGenerated)
     {
      header+="\""+column.headerText+"\"";
      if(k<(columnCount-1))
      {
       header+=csvSeparator;
      }
      
     }
    }
    headerGenerated=true;
    
    if(j<(rowCount-1))
    {
     dataStr+=lineSeparator;
    }
    j++;
    cursor.moveNext();
   }
   
   dataProvider=null;
   columns=null;
   column=null;
   return (header+"\r\n"+dataStr);
    
  }
  
 方法二:

1.var excelFactory:SaveExcelField = new SaveExcelField();

excelFactory.ExportToExcel(dataGrid, "hendText",true);

public function ExportToExcel(dataGrid:DataGrid,filename:String, allData:Boolean):void
  {
   try
   {
    var fields:Array = new Array();
    var sheet:Sheet = new Sheet();    
    var dataProviderCollection:ArrayCollection =dataGrid.dataProvider as ArrayCollection;   
    
    
    var i:int = 0;
    var columns:Array = dataGrid.columns;
    
    
    var rowCount:int = dataProviderCollection.length;
    
    if(allData)
    {
     sheet.resize(rowCount+1,dataGrid.columnCount);
     
     columns.pop();
     
     
    }
    else
    {
     sheet.resize(rowCount+1,dataGrid.columnCount);
    
        /* 
     for (var m:int=0;m<columns.length;m++)
     {
      var field1:DataGridColumn=columns[m] as DataGridColumn;
      //var field:DataGridColumn in columns
      fields.push(field1.dataField.toString());
      sheet.setCell(0,i,field1.headerText.toString());
      i++;
     }*/
    
    }
    //sheet.resize(rowCount+1,dataGrid.columnCount-1);
   
    for each (var field:DataGridColumn in columns)
    {
     fields.push(field.dataField.toString());
     sheet.setCell(0,i,field.headerText.toString());
     i++;
    }
   
    
    
    
    for(var r:int=0;r<rowCount;r++)
    {
     var record:Object =dataProviderCollection.getItemAt(r);
     insertRecordInSheet(r+1,sheet,record,fields);
    }
    var xls:ExcelFile = new ExcelFile();
    xls.sheets.addItem(sheet);
    
    var bytes: ByteArray = xls.saveToByteArray();
    var fr:FileReference = new FileReference();
    
    fr.save(bytes,filename);
   }
   catch(e:Error)
   {
    MapUni.errorWindow(e.toString());
   }
   
  }

flex 导出Excel功能实现的更多相关文章

  1. Atitit.导出excel功能的设计 与解决方案

    Atitit.导出excel功能的设计 与解决方案 1.1. 项目起源于背景1 1.2. Js  jquery方案(推荐)jquery.table2excel1 1.3. 服务器方案2 1.4. 详细 ...

  2. 项目笔记:导出Excel功能

    1.前台这块: var ids=""; $.post("${basePath}/assets/unRegDeviceAction_getDeviceIds.do" ...

  3. 项目笔记:导出Excel功能分sheet页插入数据

    导出Excel功能分sheet页处理数据: /*导出EXCEL*/ public void createExcel() { log.info("导出Excel功能已经启动-BEGIN&quo ...

  4. vue项目导出EXCEL功能

    因为一些原因导出EXCEL功能必须前端来做,所以就研究了一下,在网上也找了一些文章来看,有一些不完整,我做完了就记录下来,供大家参考: 1.首先先安装依赖: npm install file-save ...

  5. Vue通过Blob对象实现导出Excel功能

    不同的项目有不同的导出需求,有些只导出当前所显示结果页面的表格进入excel,这个时候就有很多插件,比如vue-json-excel或者是Blob.js+Export2Excel.js来实现导出Exc ...

  6. dataTables的导出Excel功能

    Datatables它是一款基于jQuery表格插件,钟情于它操作dom的灵活.做后台的同学想必使用它能事半功倍,而且交互强.容易扩展. 我也是最近要做公司后台界面,表格涉及的很多,所以考虑使用DT, ...

  7. layui + mvc + ajax 导出Excel功能

    为了更方便,没基础的伙伴更容易理解,我尽量详细简便 省了很多代码,一步一步的试 自己引入文件 1. html 前端视图代码 Layui的数据绑定 全部代码 @{ Layout = null; } &l ...

  8. asp.net core web的导入导出excel功能

    这里主要记录下asp.net core web页面上进行导入导出excel的操作. 主要是导入,因为现在使用的很多前端框架(例如kendo ui)本身就有导出的功能. 这里使用到EPPlus.Core ...

  9. Django Admin中增加导出Excel功能

    参考: https://www.cnblogs.com/yoyo008/p/9232805.html 在使用Django Admin时, 对于列表我们有时需要提供数据导出功能, 如下图: 在Djang ...

随机推荐

  1. 全面理解Javascript中Function对象的属性和方法

    http://www.cnblogs.com/liontone/p/3970420.html 函数是 JavaScript 中的基本数据类型,在函数这个对象上定义了一些属性和方法,下面我们逐一来介绍这 ...

  2. repeater没有数据显示暂无数据,无记录

    方法就是在FooterTemplate加个Label并根据repeater.Items.Count判断是否有记录.关键代码如下: <FooterTemplate> <asp:Labe ...

  3. JavaScript 中的window.event代表的是事件的状态,jquery事件对象属性,jquery中如何使用event.target

    http://wenda.haosou.com/q/1373868839069215 http://kylines.iteye.com/blog/1660236 http://www.cnblogs. ...

  4. Apache Shiro系列教程之二:十分钟上手Shiro

    在本教程中,我们会写一个简单的.仅仅输出一些内容命令行程序,从而对Shiro有一个大体的感觉. 一.准备工作 本教程需要Java1.5+,并且我们用Maven生成项目,当然Maven不是必须的,你也可 ...

  5. [转]Windows系统中监控文件复制操作的几种方式

    1. ICopyHook 作用: 监视文件夹和打印机移动,删除, 重命名, 复制操作. 可以得到源和目标文件名. 可以控制拒绝操作. 缺点: 不能对文件进行控制. 只对Shell文件操作有效, 对原生 ...

  6. IOCP简单实现

    本人工作是服务端性能测试,因工作需要开发机器人框架,选用底层的时候看到网上满大街的IOCP介绍,还有说IOCP比WSAAsyncSelect复杂等等,所以只好转WSAAsyncSelect实现. 因并 ...

  7. JavaScript插件架构

    1.HTML布局规则 默认情况下,所有的插件都可以通过设置特定的HTML代码和相应的属性来实现.也就是说,在网页加载的时候,JavaScript代码会自动检测这些标记,并自动绑定相应的事件,而无需添加 ...

  8. pl/sql和sql的区别

    源地址:https://zhidao.baidu.com/question/187511430.html 1 sql(数据定义语言) 和PL/Sql的区别:答:SQL是结构化查询语言,比较接近自然语言 ...

  9. java io 输入输出流

    数据流分类: 流序列中的数据既可以是未经加工的原始二进制数据, 也可以是经一定编码处理后符合某种格式规定的特定数据. 因此Java中的流分为两种: 1) 字节流:数据流中最小的数据单元是字节 2) 字 ...

  10. C预处理和C库

    #include <stdio.h> #define MAN(x) "n"##x int main(void) { printf("%s",MAN( ...