Flex界面DateGrid数据导出Excel表格

[size=medium]使用as3xls-1.0.1.SWC包做的Flex界面DateGrid数据导出Excel表格[/size]
[color=red]
[color=red]注意[/color]:
1.FileReference的save方法在Flash10才支持,在Flex工程上右键,属性,Flex Conpiler中把Require Flash Player version:填为10.0.0。
2.生成的Excel为旧版本,需要微软office才能打开,金山WPS版本不兼容。
3.as3xls-1.0.1.SWC解决as3xls-1.0.swc的中文乱码问题,附件提供。
as工具类:Util.as

package lzr.util
{
import com.as3xls.xls.Cell;
import mx.collections.ArrayCollection;
import flash.events.*;
import flash.net.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 Util
{
public 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;r<rowCount;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列名域值record[field]与value是否相等**/
if (record[field].toString() == value)
/**写入表格中**/
sheet.setCell(row,i,value);
}
i++;
}
}
}
}
}
}



mxml界面 Test.mxml


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();">
<mx:Script>
<![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<5;i++)
{
//ItemName/ItemCost/ItemQty/ItemPrice
var tempArray:Array = new Array();
tempArray.ItemName="测试"+i;
tempArray.ItemCost="调试"+i;
tempArray.ItemQty="ItemQty^^"+i;
tempArray.ItemPrice="ItemPrice^^"+i;
dg.push(tempArray);
}

}
public function exportTo():void
{
///调用Util类的静态方法
Util.exportToExcel(myDg);
}
]]>
</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="exportTo();"/>
</mx:Application>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用DataGrip导入Excel表格,具体步骤如下: 1. 打开DataGrip,连接到需要导入表格数据库。 2. 在左侧的面板中选择需要导入表格数据库,右键点击该数据库,选择“导入”。 3. 在弹出的对话框中,选择要导入的Excel文件,并选择导入的表格格式,比如CSV、XLS或XLSX等。 4. 根据需要设置导入选项,比如表格分隔符、字符集、日期格式等。 5. 点击“导入”按钮,等待数据导入完成。 6. 导入完成后,在左侧的面板中查看导入的表格,确保数据已经正确导入。 注意:在导入Excel表格时,需要注意Excel文件的格式和内容是否正确,否则可能会导致导入失败或者数据不准确。同时,需要根据实际情况设置导入选项,以确保数据的正确性和完整性。 ### 回答2: DateGrid是一种用于展示和编辑数据的GUI控件,而Excel是一种电子表格软件。可以通过一些步骤来将Excel表格导入到DateGrid中。 首先,需要准备一个Excel表格,并确保该表格中的数据DateGrid中的列对应。接下来,可以使用一些开发工具或编程语言(如Python)来实现导入功能。 使用Python中的pandas库,可以方便地将Excel文件读取为一个DataFrame对象,然后可以将该DataFrame对象的数据绑定到DateGrid上。首先需要安装pandas库,可以使用pip命令进行安装。 接下来,可以使用以下代码来导入Excel表格: ```python import pandas as pd from tkinter import Tk from tkinter.filedialog import askopenfilename def import_excel(): # 创建Tkinter窗口 root = Tk() root.withdraw() # 打开文件选择对话框 file_path = askopenfilename(filetypes=[('Excel Files', '*.xlsx')]) # 使用pandas读取Excel文件 df = pd.read_excel(file_path) # 将DataFrame数据绑定到DateGrid上 ``` 在上述代码中,首先创建了一个Tkinter窗口,并隐藏了窗口。然后使用文件选择对话框(askopenfilename)选择要导入的Excel文件。最后,使用pandas的`read_excel`函数将Excel文件读取为DataFrame对象。接下来的步骤是将DataFrame数据绑定到DateGrid上,这一步需要根据具体的开发工具和控件进行设置。 以上就是将Excel表格导入到DateGrid中的大致步骤。根据具体的开发环境和工具,可能需要进行一些额外的设置和调整。希望对你有所帮助! ### 回答3: Databricks是一种基于云的数据处理平台,它可以轻松地将Excel表格导入到Databricks中。下面是一些设置步骤: 1. 在Databricks中创建一个新的Notebook,并选择相应的计算引擎(例如Apache Spark)以进行数据处理。 2. 在Notebook中导入必要的Python库或Spark模块,例如pandas和py4j。 3. 使用pandas库中的read_excel函数来读取Excel文件。你可以指定Excel文件的路径、文件名和工作表名称。 4. 通过指定参数,你可以控制数据的读取方式,例如读取特定的行或列,跳过或忽略标题行等。 5. 然后,你可以将Excel数据转换为pandas的DataFrame对象,这样可以更方便地进行数据处理和分析。 6. 如果需要将DataFrame对象转换为Spark的DataFrame对象,可以使用Spark的创建DataFrame的函数,例如SparkSession.createDataFrame。 7. 最后,你可以在Databricks中使用导入的Excel数据进行各种数据处理和分析操作,例如数据清洗、数据转换、数据可视化等。 需要注意的是,在导入Excel表格之前,确保Excel文件和Databricks集群可以访问,并且文件的格式正确。此外,根据Excel文件的大小和结构,读取和处理数据的性能可能会有所不同。因此,在处理大型Excel文件时,最好使用分布式计算框架(如Apache Spark)进行并行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值