`
roger_588
  • 浏览: 69734 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

flex datagrid 数据保存到excel以及从excel读取数据

阅读更多

    最近在做这个,要下载一个as3xls.swc文件,这个是开源的。或者直接下载源代码。在例子中有源代码,swc也在下载文件中,可以下载并查看。例子中是别人写的,用AIR写的,主要是读取Excel文件内容,后台打印出来的。(我也是研究别人的东西呵呵)

 

    下面介绍下datagrid数据保存到excel文件中。

     具体上代码大家看吧。(由于公司有限制有些网站功能无法使用代码格式大家凑合着看吧)

 

     <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();">
    <mx:Script>
        <![CDATA[
            import com.as3xls.xls.Cell;
            import mx.collections.ArrayCollection;
           
            import com.as3xls.xls.Sheet;
            import com.as3xls.xls.ExcelFile;
            import mx.controls.Alert;
            private var fileReference:FileReference;
            private var xls:Class;
            private var sheet:Sheet;
           
            [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<4;i++)
                {
                    //ItemName/ItemCost/ItemQty/ItemPrice
                    var tempArray:Array = new Array();
                    tempArray.ItemName="ItemName^^"+i;
                    tempArray.ItemCost="ItemCost^^"+i;
                    tempArray.ItemQty="ItemQty^^"+i;
                    tempArray.ItemPrice="ItemPrice^^"+i;
                    dg.push(tempArray);
                }
               
            }
           
            private function exportToExcel():void
            {
                sheet = new Sheet();
                var dataProviderCollection:ArrayCollection =myDg.dataProvider as ArrayCollection;
                var rowCount:int =  dataProviderCollection.length;
                sheet.resize(rowCount+1,myDg.columnCount);
                var columns:Array = myDg.columns;
               
                var i:int = 0;
                for each (var field:DataGridColumn in columns)
                {
                    fields.push(field.dataField.toString());
                    sheet.setCell(0,i,field.dataField.toString());
                    i++;
                }
               
                for(var r:int=0;r<rowCount;r++)
                {
                   
                    var record:Object =dataProviderCollection.getItemAt(r);
                    insertRecordInSheet(r+1,sheet,record);
                }
                var xls:ExcelFile = new ExcelFile();
                xls.sheets.addItem(sheet);
               
                var bytes: ByteArray = xls.saveToByteArray();
                var fr:FileReference = new FileReference();
                fr.save(bytes,"SampleExport.xls");
            }
            private 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)
                        {
                            if (record[field].toString() == value)
                                sheet.setCell(row,i,value);
                        }
                        i++;
                    }
                }
            }
        ]]>
    </mx:Script>
    <mx:DataGrid id="myDg" x="78" y="55" width="533" height="157"  dataProvider="{dg}">
        <mx:columns>
            <mx:DataGridColumn headerText="ItemName" dataField="ItemName"/>
            <mx:DataGridColumn headerText="ItemCost" dataField="ItemCost"/>
            <mx:DataGridColumn headerText="ItemQty" dataField="ItemQty"/>
            <mx:DataGridColumn headerText="ItemPrice" dataField="ItemPrice"/>
        </mx:columns>
    </mx:DataGrid>
    <mx:Button id="myBtn" x="619" y="113" label="exporttoexcel" click="exportToExcel();"/>  
</mx:Application>

 

FileReference是flash10.0.0版本所有的。所以你要使用此类,必须设置你的开发环境。具体右键-->properties-->Flex compiler里面设置版本。

分享到:
评论
10 楼 yuqingxue 2012-06-14  
怎么解决乱码问题呢?
9 楼 kimmking 2012-03-26  
xzxiaozhang 写道
哥,这没整好吧,从excel到,dataGrid上,搞不了。。。


可以用的。。。
8 楼 xzxiaozhang 2012-03-26  
哥,这没整好吧,从excel到,dataGrid上,搞不了。。。
7 楼 roger_588 2010-10-08  
iMzw 写道
如果要全功能的excel(多sheet,各种函数等等),必须实现 BIFF version 8 (http://sc.openoffice.org/excelfileformat.pdf)

这个没研究过,有空研究研究。
6 楼 roger_588 2010-10-08  
iMzw 写道
如果要导出excel建议服务器处理

服务器是强大的,具体还是看业务了。
5 楼 iMzw 2010-10-01  
如果要全功能的excel(多sheet,各种函数等等),必须实现 BIFF version 8 (http://sc.openoffice.org/excelfileformat.pdf)
4 楼 iMzw 2010-10-01  
如果要导出excel建议服务器处理
3 楼 iMzw 2010-10-01  
as3xls类库没有太实际应用的价值
2 楼 roger_588 2010-08-31  
这个没研究过。谁知道可以说说。
1 楼 kimmking 2010-08-29  
as3xls 有合并单元格的处理不了。

相关推荐

    将Flex DataGrid数据导出到Excel中

    - **接收到数据**:在Java服务端,接收并解析来自Flex客户端的数据。根据接收到的数据格式(JSON或XML),使用相应的库(如Jackson或JAXB)进行解析。 - **创建Excel文件**:使用Apache POI库,这是一个强大的API...

    flex datagrid to excel

    而将DataGrid中的数据导出到Excel,则涉及到数据处理和文件格式转换。 1. **Flex DataGrid组件**:Flex DataGrid是Adobe Flex SDK中的一个组件,它提供了一种高效且可定制的方式来展示表格数据。开发者可以设置列头...

    利用ASP架构将flex中的datagrid数据导出为excel表格方式。

    在IT行业中,将数据从应用程序导出到常见格式如Excel是一种常见的需求,这有助于数据分析、报表制作和数据共享。在本场景中,我们将探讨如何利用ASP(Active Server Pages)架构来实现这一功能,特别是针对Flex中的...

    flexDataGrid导入Excle案例

    1. **数据导入**:在AS中,导入Excel文件的步骤通常包括解析Excel文件,将数据转化为AS可以理解的数据结构,如Array或ArrayCollection,然后将这些数据绑定到FlexDataGrid组件上,展示出来。 2. **第三方库的使用**...

    Flex通过Java读取Excel(详细流程)

    标题中的“Flex通过Java读取Excel(详细流程)”是指一种技术方案,用于在Flex前端应用中展示由Java在服务器端从Excel文件中读取的数据。这个过程涉及到三个主要步骤: 1. **Java通过POI操作Excel**:Apache POI是一...

    FLEX 读取Excel

    以上就是FLEX读取Excel数据并展示以及传送到后台的基本流程。实践中,根据具体需求,你可能还需要处理更复杂的情况,如处理不同类型的单元格格式、合并单元格、图表等。但有了As3Xlsx这样的库,FLEX在处理Excel数据...

    Flex4.5导入Excel/csv到DataGrid及DataGrid右键

    在Flex开发中,数据展示是常见且重要的任务之...通过学习如何导入Excel和CSV数据到DataGrid,以及定制右键菜单,你可以提升Flex应用的数据展示和用户交互体验。同时,理解并实践这些技术也有助于提升你的Flex编程技能。

    Flex3ReadWriteExcel(flex3导入导出excel表格)

    在描述中提到的示例,就是通过Flex3的APIs来实现DataGrid中的数据导入到Excel以及从Excel导出数据的功能。这一过程涉及到两个关键步骤:数据的读取和数据的写入。 1. 数据读取: - 使用Flex3中的FileReference类,...

    flex excel文件导入到出

    flex excel文件导入到出 DataGrid

    Flex导出excel文件例子

    在本例中,我们将探讨如何使用Flex来导出数据到Excel格式,以及涉及到的关键技术和工具。 首先,我们需要了解`flex excel as3 as3xls swc`这些标签的含义。`flex`指的是Adobe Flex框架,`excel`是指目标输出格式,`...

    Flex导出Excel之as3xls(包括datagrid全选功能)

    综上所述,这个知识点涉及到Flex的编程、ActionScript 3的类库使用、DataGrid组件的全选功能以及Excel文件的导出实现。开发者需要了解Flex的基本概念,ActionScript 3的语法,以及如何使用第三方库来扩展Flex应用的...

    Flex DataGrid 伪合并单元格实现思路

    Flex DataGrid是Adobe Flex框架中用于显示和操作表格数据的组件。然而,Flex DataGrid本身并不支持单元格合并的功能。当需要在DataGrid中实现类似Excel中单元格合并的效果时,我们就需要采用一种称为“伪合并单元格...

    Flex导入Excel文件的应用部分代码

    要实现Flex导入Excel文件的功能,通常会涉及到对二进制数据的处理、文件I/O操作以及可能的第三方库使用。以下是对这一主题的详细说明: 1. **文件读取**:在Flex中,可以使用Flash的FileReference类来与本地文件...

    flex导入03版excel

    这可能涉及到数据绑定,将ArrayCollection绑定到表格组件(如DataGrid或AdvancedDataGrid),或者进行进一步的数据处理,比如验证、过滤、排序等。 总的来说,实现"flex导入03版excel"的功能,需要掌握以下技术点:...

    Flex利用as3xls导入excel数据表

    标题中的“Flex利用as3xls导入excel数据表”是指在Adobe Flex开发中,使用AS3XLS库来处理和导入Microsoft Excel(.xls)文件的数据。Flex是一种基于ActionScript 3(AS3)的开源框架,用于构建富互联网应用程序(RIA...

    as3xls-1.0.1.swc

    在Adobe Flex开发环境中,与Excel文件进行交互的需求尤为常见,例如从Datagrid组件导出数据到Excel格式。AS3XLS是一个强大的ActionScript 3库,专门用于在Flex应用程序中读取和写入Microsoft Excel(.xls)文件。在...

    Flex Data Grid Exporter

    通过这个工具,开发者可以添加一键导出功能到他们的Flex应用,使得用户能够将当前显示在数据网格中的数据保存到本地,通常以CSV格式。 3. **CSV(Comma-Separated Values)**:CSV是一种通用的、轻量级的数据交换...

Global site tag (gtag.js) - Google Analytics