Export
导出
Introduction
介绍
eXtremeTable本身有一个能力, 就是可以导出table内容为多种格式. 当导出时, 在过滤和排序后, 你将会得到完整的结果集. 分页不会影响返回的结果记录. 换句话说, 如果table内容显示在多页时, 所有页面的所有结果记录都会被导出. 导出的格式包括 Excel, PDF 和CSV.
为了导出 Microsoft Excel (OpenOffice Calc), 需要使用ExportXls Tag.
<ec:table
items="presidents"
action="${pageContext.request.contextPath}/presidents.run"
/>
<ec:exportXls
fileName="presidents.xls"
tooltip="Export Excel"/>
...
</ec:table>
默认的XlsView使用的是UTF-16编码. 如果你需要使用unicode, 那么可以使用编码特性. 可以使用的编码有UTF和UNICODE.
为了导出PDF, 可以使用ExportPdfTag. 你需要定义是fileName特性和一些其他类型的特性.
<ec:table
items="presidents"
action="${pageContext.request.contextPath}/presidents.run"
/>
<ec:exportPdf
fileName="presidents.pdf"
tooltip="Export PDF"
headerColor="blue"
headerBackgroundColor="red"
headerTitle="Presidents"/>
...
</ec:table>
为了导出CSV, 可以使用ExportCsvTag. 当使用CSV导出是, 默认的分隔符是逗号. 如果你想要用其他符号来分割的话, 那么可以使用delimiter特性. 在这个例子中, 我使用竖杠(pipe)来分割.
<ec:table
items="presidents"
action="${pageContext.request.contextPath}/presidents.run" />
<ec:exportCsv
fileName="presidents.txt"
tooltip="Export CSV"
delimiter="|"/>
...
</ec:table>
如果你想要构建其他的输出格式, 你可以用view特性. 在eXtremeTable中views实现了接口View, 是可插拔式的. 可以参考 [[Views|View]] 这一章节获取更多的信息.
Interceptor
拦截器
拦截器的特征就是被用来在运行时改变属性值的. 这就能够改变基于数据的导出行为了, 关于更多的拦截器相关可以参考 interceptor tutorial.
Extended Attributes
扩展特性
大部分tags被开发的方式是, 在一个tag上拥有一些固定的特性. 那些特性然后被使用, 一些固定集合的功能能够被调用. 然而, eXtremeTable有着更多的灵活性. eXtremeTable给你一种方式来增加你自己tag的特性, 以至于你能做更多定制化的工作. 不止如此, 在eXtremeTable中有着更清晰的hooks, 从而允许你获取到那些自定义的tag特性, 然后再编辑它们. 下面将会是一个典型的自定义的View.
hook为了能包括eXtremeTable中的特性, 可以通过addExportAttributes()方法.
ExportTag调用这个方法, 如果其方法被重写了. 那也就意味着你需要扩展ExportTag, 重写addExportAttributes()方法, 然后增加你自己的特性到Export对象中.
public void addExportAttributes(TableModel model, Export export) {
}
这个就是ExportCsvTag的示例代码:
public class ExportCsvTag extends ExportTag {
private String delimiter;
public String getDelimiter() {
return delimiter;
}
public void setDelimiter(String delimiter) {
this.delimiter = delimiter;
}
public void addExportAttributes(TableModel model, Export export) {
export.addAttribute(CsvView.DELIMITER, TagUtils.evaluateExpressionAsString("delimiter", delimiter, this, pageContext));
}
}
既然你增加了特性, 你可以从Export中来获取他们. 这里是CsvView实现的一部分代码:
public class CsvView implements View {
public void body(TableModel model, Column column) {
Export export = model.getExportHandler().getCurrentExport();
String delimiter = export.getAttributeAsString(DELIMITER);
}
}
另外一件事我想要确保你明白的是, 你能够创建你自己的tag, 拥有你自己的TLD文件. 你不需要去修改extremecomponents.tld文件. 还可以你使用你自定义的tag, 就如同在eXtremeTable中你使用其他的tag一样, 除非你引用你自己的tag. 例如, 如果你的tag引用是mycompany, tag被称为customExport, 你可以编辑成下面这样:
|
original text: https://code.google.com/p/extremetable/wiki/Export
相关推荐
《eXtremeTable教程详解》 eXtremeTable是一款强大的开源JSP定制标签库,主要用于在Web应用中以表格形式展示数据。本教程详细介绍了eXtremeTable的配置、使用方法以及各种标签的功能,旨在帮助开发者充分利用其功能...
ExportService.exportToCSV(table, new File("output.csv")); ``` CHM文件“2008821161857.chm”很可能包含了上述所有操作的详细步骤,包括示例代码和常见问题解答。打开CHM文件,通过索引或搜索功能可以快速找到所...
<filter-class>org.extremecomponents.export.filter.XtremeExportFilter</filter-class> <filter-mapping> <filter-name>eXtremeExport</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``...
6. 至16.9的章节依次介绍了`ParameterTag`、`ExportTag`、`Callbacks`、`视图`、`Preferences`、`Messages`、`Limit`、`AutoGenerateColumns`、`Utilities`、`升级说明`、`Tag Attributes`,涵盖参数设置、数据导出...
- 结合`export`属性,可以将表格数据导出为PDF或XLS格式。 通过深入学习eXtremeComponents,开发者可以构建出交互性强、功能丰富的Web界面,提升用户体验。同时,由于ec基于标准JSP标签,易于理解和集成到现有的...
该标签库的主要组成部分是eXtremeTable组件,它能够以表格形式高效地展示数据,从而提升网站的用户体验和美观度。 ### 特点与优势 1. **易用性**:eXtremeComponents设计简洁,易于集成到现有的JSP应用中。 2. **...