简述
查询数据的excel导出功能应该是目前很多系统中的基本特性之一,对于如下图中的界面应该一点都不会陌生:
图表 16 Excel数据导出界面
dorado也对excel数据导出提供了支持,通过Export2ExcelCommand实现excel数据导出.
由于在dorado中,相关的数据都是通过dataset实现的,数据查询与数据分批下载都需要通过dataset向数据层请求和获得,于是Export2ExcelCommand的数据导出是基于dataset实现的,另外对于excel数据的导出格式,在dorado中利用了DataTable对象,利用DataTable的用户格式定制功能,例如动态改变列的顺序,动态改变列的标题,动态设定列是否可见等。这些都可以控制最终的excel数据导出格式。
更详细的内容参考文档<<dorado 5 ExcelReport 使用手册 v0.9.doc>>
使用
使用Export2ExcelCommand数据导出的实现非常简单,查看如下的xml配置文件:
<Control id="cmdDownloadExcel" |
其中关键的属性就是dataset与templateTable属性:
dataset用以指定excel数据的来源,系统执行时将以dataset作为服务获取导出数据;
templateTable指定导出模板,excel数据导出时将以该table目前的格式作为导出格式的参照;
dataset的指定很容易,只要选择当前视图模型中的相应dataset对象即可,而对于templateTable的格式控制来说,默认情况下Export2ExcelCommand使用该Table的默认格式实现到处,如图表13中的表格。
常用技巧
如何自定义导出格式
利用表格的属性页我们可以动态的控制Excel文件中输出的数据列和他们之间的顺序。 您可以利用表格的属性页或列拖动操作来改变表格的显示,从而改变Excel导出的格式。(在表格中按下Ctrl+T可以打开表格的属性页)
表格属性页如下图:
图表 17
表格的属性页详细功能参考DataTable部分。
动态编程
在服务器段动态生成Export2ExcelCommand
protected void initControls() throws Exception { |
使用视图模型实现类提供的createControl方法创建Export2ExcelCommand对象,注意第一个参数用以指定组件的类型,第二个参数指定新建对象的id.
在服务器段获得View(视图模型)中定义的Export2ExcelCommand,并动态它的属性
protected void initControls() throws Exception { |
在上面的代码中可以看到通过实现类提供的getControl函数获得我们需要的组件对象,所需要的就是给它一个Export2ExcelCommand对象的id,注意开发时我们建议您直接在View的设计中添加一个空Export2ExcelCommand组件,这样我们就可以在initControls方法中通过getControl方法获得这个空的Export2ExcelCommand对象,并利用该对象提供的API进行各种设定和初始化的工作,如Export2ExcelCommand的setDataset(), setTemplateTable()方法。
主要属性说明
基本属性参考RequestCommand的属性说明
属性 |
说明 |
dataset |
dataset用以指定excel数据的来源,系统执行时将以dataset作为服务获取导出数据 |
dataMode |
|
templateTable |
templateTable指定导出模板,excel数据导出时将以该table目前的格式作为导出格式的参照 |
exportMode |
Excel导出模式: |
fileName |
Excel导出后下载文件的文件名(exportMode为download才有效) |
maxRow |
Excel导出的数据行数限制,可在此处输入数字加以控制,该属性为空或则为0则,导出全部的数据。某些情况下还要注意检查自己的数据层是否支持这种操作。 |
主要事件说明
参考RequestCommand的事件说明
Attachments:
worddav9b797db38ec42f7bbdbe880186c9e16a.png (image/png)