环境:FLEX4.6.0
附件为Mecgrid导出EXCEL帮助类库
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:MecGrid="com.mechan.MecGrid.*"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600"
creationComplete="MakeData()"
>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import com.mechan.MecGrid.mecGridClasses.CellOp;
import com.mechan.MecGrid.mecGridClasses.MecGridConst;
import com.mechan.MecGrid.mecGridClasses.MecGridEvent;
import mx.collections.ArrayCollection;
import mx.utils.Base64Encoder;
private var dpcol:ArrayCollection;
private var dp:Array;
import com.mechan.export.MecExporter;
private function exportToExcelFile():void
{
var mgrid:MecGrid=this.mgrid;
if (mgrid)
{
try
{
var exp:MecExporter=new MecExporter();
// add MecGrid with sheetname
exp.charset="zh_CN";
exp.AddDataGrid(mgrid, "");
// exporting to binary data
var ebt:ByteArray=exp.Export2BiffExcel();
var b64encoder:Base64Encoder=new Base64Encoder();
b64encoder.encodeBytes(ebt);
var file:FileReference=new FileReference();
file.save(ebt, "t.xls");
/* b64encoder.insertNewLines = false;
b64encoder.encodeBytes(ebt);
ExternalInterface.call("loadExcelFile", b64encoder.flush()); */
}
catch (e:Error)
{
mx.controls.Alert.show(e.message);
}
}
}
private function MakeData():void{
var i:int;
var n:int = 0;
dp = new Array();
var obj:Object = new Object();
//obj.continent = "continent1";
obj.country = "我是来自";
obj.city = "city1";
obj.qt1 = Math.random() * 100;
obj.qt2 = Math.random() * 100;
obj.qt3 = Math.random() * 100;
obj.qt4 = Math.random() * 100;
dp.push(obj);
var obj2:Object = new Object();
//obj2.continent = "continent1";
obj2.country = "我是来自";
obj2.city = "city1" ;
obj2.qt1 = Math.random() * 100;
obj2.qt2 = Math.random() * 100;
obj2.qt3 = obj.qt3;
obj2.qt4 = obj.qt3;
dp.push(obj2);
mgrid.redraw = false;
mgrid.SelectionMode = CellOp.SELECTIONMODE_CELL | CellOp.SELECT_MULTI;
mgrid.Rows.count = 0;
mgrid.Cols.count = 7;
mgrid.spreadSheetStyle = true;
mgrid.merge_option = MecGridConst.MERGE_PREV;
mgrid.AddRow(0, "CONTINENT;COUNTRY;CITY;QT1;QT2;QT3;QT4");
mgrid.Rows.fixed = 1;
mgrid.Cols.item(0).dataField = "continent";
mgrid.Cols.item(1).dataField = "country";
mgrid.Cols.item(2).dataField = "city";
mgrid.Cols.item(3).dataField = "qt1";
mgrid.Cols.item(4).dataField = "qt2";
mgrid.Cols.item(5).dataField = "qt3";
mgrid.Cols.item(6).dataField = "qt4";
mgrid.Cols.item(0).merge = true;
mgrid.Cols.item(1).merge = true;
mgrid.Cols.item(2).merge = true;
mgrid.Cols.item(3).merge = true;
mgrid.Cols.item(4).merge = true;
mgrid.Cols.item(5).merge = true;
mgrid.Cols.item(6).merge = true;
mgrid.Cols.item(3).datatype = CellOp.STATUSBAR;
mgrid.Cols.item(4).datatype = CellOp.STATUSBAR;
// mgrid.addEventListener(MecGridEvent.DATAPROVIDER_UPDATE_FINISHED, refreshRandomValues);
mgrid.treeGridData = false;
mgrid.dataProvider = dp;
mgrid.redraw = true;
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout gap="2" />
</s:layout>
<MecGrid:MecGrid id="mgrid" width="100%" height="100%">
<!--MecGrid:ResourceXML >
<fx:XML xmlns="">
<List>
<option cols="7" fixedrows="2" fixedcols="0" merge_option="4" merge_option_fixedcolumn="0" merge_option_fixedrow="2" showspreadsheet="F" selectionmode="18" treeview="T" treeColumn="0" textalignment="6" textalignment_fixed="5"/>
<columns>
<column name="col_0" datafield="selected" visible="T" editable="F" colindex="0" autowidth="T" width="41" datatype="0" textalign="5" textalign_fixed="10" formatstring="" header="Select;Select"/>
<column name="col_1" datafield="country" visible="T" editable="F" colindex="1" autowidth="T" width="61" datatype="5" textalign="4" textalign_fixed="10" formatstring="" header="Country;Country"/>
<column name="col_2" datafield="city" visible="T" editable="F" colindex="2" autowidth="T" width="61" datatype="5" textalign="4" textalign_fixed="10" formatstring="" header="City;City"/>
<column name="col_3" datafield="qt1" visible="T" editable="F" colindex="3" autowidth="T" width="88" datatype="5" textalign="10" textalign_fixed="10" formatstring="#,###.##" header="Visitors;1st Quater (A)"/>
<column name="col_4" datafield="qt2" visible="T" editable="F" colindex="4" autowidth="T" width="92" datatype="5" textalign="10" textalign_fixed="10" formatstring="#,###.##" header="Visitors;2nd Quater (B)"/>
<column name="col_5" datafield="qt3" visible="T" editable="F" colindex="5" autowidth="T" width="90" datatype="5" textalign="10" textalign_fixed="10" formatstring="#,###.##" header="Visitors;3rd Quater (C)"/>
<column name="col_6" datafield="qt4" visible="T" editable="F" colindex="6" autowidth="T" width="90" datatype="5" textalign="10" textalign_fixed="10" formatstring="#,###.##" header="Visitors;4th Quater (D)"/>
</columns>
</List>
</fx:XML>
</MecGrid:ResourceXML-->
</MecGrid:MecGrid>
<s:Button click="exportToExcelFile()" label="导出EXCEL"/>
</s:Application>
分享到:
相关推荐
AdvancedDataGrid导出复杂表头excel
flex MecExporter(2).swc MecExporter(2).swc
flex中dataGrid导出数据到excel中,不存在乱码问题
在Flex Air中,有时我们需要将数据导出为Excel格式,以便用户可以进行离线分析或进一步处理。然而,需要注意的是,Flex Air原生并不直接支持导出包含中文字符的Excel文件,这可能是由于早期版本的Excel文件格式处理...
在导出文件时,通常会使用FileReference类来进行本地文件的保存。你需要确保用户有足够的权限,并遵循正确的安全策略,如提示用户选择保存位置。 在实际开发中,可能还会遇到其他问题,比如性能优化、大量数据处理...
通过使用MecExporter类,我们可以将MecGrid中的数据转换为Excel格式,方便用户进行离线分析或与其他应用程序共享。 总的来说,MecGrid是一个强大的FLEX组件,它的Excel风格界面和丰富的功能使得在Flex应用中实现...
"flex前台直接导出excel"这个话题,指的是在使用Adobe Flex这一前端框架时,如何直接在客户端生成并导出Excel文件,而不需要通过服务器端如JSP或Java进行处理。这种方式可以避免因为字符编码问题导致的乱码,同时也...
13. **用户体验**:在导出过程中,应提供反馈,如显示进度条或消息,让用户知道操作正在执行且何时完成。 综上所述,Flex与Java结合的Excel导出涉及到前端的事件处理、参数传递、样式定义,以及后端的数据获取、...
在导出数据时,我们需要获取这个数据提供者,然后将其转换成适合Excel的格式。 3. **XML序列化**:在Flex中,我们可以利用XML或XMLList来表示数据,因为它们可以轻松地转换成字符串,方便写入文件。将DataGrid的...
开发者可以通过研究和使用提供的源代码,了解如何在Flex环境中使用第三方库与Excel文件进行交互,从而提高开发效率。同时,这个项目还展示了如何组织和配置一个Flex项目,对于学习Flex开发流程也有一定的参考价值。
这个类可能会使用Adobe的Flex SDK中的PDF和Excel导出库,如PDFWriter和ExcelWriter。这些库允许我们以编程方式创建PDF和Excel文件,包括设置单元格的样式、合并单元格以及插入数据。 在处理多层表头时,我们需要在...
在描述中提到的示例,就是通过Flex3的APIs来实现DataGrid中的数据导入到Excel以及从Excel导出数据的功能。这一过程涉及到两个关键步骤:数据的读取和数据的写入。 1. 数据读取: - 使用Flex3中的FileReference类,...
在Flex中,如果你需要将数据导出为Excel格式,这是一个常见的需求,特别是当你需要提供用户下载大量数据的功能时。本篇文章将深入讲解如何在Flex中实现Excel文件的导出。 在Flex中,我们通常不直接操作Excel文件,...
本篇将详细讲解如何在Flex页面上实现数据导出到Excel的功能。 Flex是一种基于Adobe Flash Player运行时的开放源代码框架,主要用于构建富互联网应用程序(RIA)。它允许开发者创建具有丰富用户体验的交互式应用,但...
`swc`是Flex的库文件格式,用于封装代码库以便在Flex项目中使用。 在Flex中导出Excel文件,通常分为以下几个步骤: 1. **集成as3xls库**:首先,你需要将as3xls库添加到你的Flex项目中。这可以通过将as3xls的SWC...
2. **捕获DataGrid数据**:在导出Excel之前,你需要获取DataGrid中显示的所有数据。这可以通过遍历DataGrid的items或使用Flex提供的数据绑定机制来实现。将每个单元格的数据保存到一个二维数组中,以模拟Excel的行和...
Flex利用JSP导出Excel Flex利用JSP导出Excel
MecGrid是一款功能强大且漂亮的组件,几天用下来非常满意,但是该组件导出为Excel只支持Air桌面程序,由于业务需要画了点时间做了一下,该实例可以在Flex Web应用中导出Excel表,导出效果和Air下导出的效果一样,...
在Flex导出Excel的过程中支持合并功能,意味着用户可以在导出前对数据网格中的数据进行格式化,以适应更复杂的报告需求。 4. **隐藏**:隐藏单元格指的是在导出到Excel时,可以选择性地不显示某些单元格中的数据。...