Chapter 7. ExportTag
eXtremeTable具有導出不同格式文件的功能,導出的數據為過濾和排序后的所有結果集, 分頁不會影響返回的結果集。換句話說,如果表數據分多頁顯示,那么所有頁的數據都將被導出。 導出的格式為Microsoft Excel (OpenOffice Calc)、PDF和CSV。
使用ExportXlsTag導出Microsoft Excel (OpenOffice Calc):
<ec:table
items="presidents"
action="${pageContext.request.contextPath}/presidents.run"
/>
<ec:exportXls
fileName="presidents.xls"
tooltip="Export Excel"/>
...
</ec:table>
使用ExportPdfTag導出PDF。所有要做的就是指定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>
使用ExportCsvTag導出CSV。當使用CSV導出是默認的分隔符為‘,’(comma)。你可以使用 delimiter屬性來指定為其他的符號。下面為指定‘|’(pipe)為CSV分隔符的示例:
<ec:table
items="presidents"
action="${pageContext.request.contextPath}/presidents.run"
/>
<ec:exportCsv
fileName="presidents.txt"
tooltip="Export CSV"
delimiter="|"/>
...
</ec:table>
你可以通過指定view屬性來導出其他文件格式。eXtremeTable視圖實現View接口并是 可插接的。參閱View章了解更多信息。
大多數標簽包含一系列的固定屬性,這樣那些已經實現的功能能夠被使用。然而,eXtremeTable具有一種更具彈性的架構, 你可以添加自己的標簽屬性實現更多的定制工作。此外,eXtremeTable提供了非常清晰的鉤子(hooks)允許你得到那些定制的 標簽屬性來做一些你需要的工作。
通過addExtendedAttributes()方法將擴展屬性包含到eXtremeTable里:
public void addExtendedAttributes(Export export);
如果方法被覆蓋ExportTag將調用它。你需要做的就是擴展ExportTag,覆蓋addExtendedAttributes()方法,然后添加自己 的屬性到導出對象中。
一個定制的ExportCsvTag示例如下:
public class ExportCsvTag extends ExportTag {
private String delimiter;
public String getDelimiter() {
return delimiter;
}
public void setDelimiter(String delimiter) {
this.delimiter = delimiter;
}
public void addExtendedAttributes(Export export) {
String view = export.getView();
if (StringUtils.isBlank(view)) {
export.setView(TableConstants.VIEW_CSV);
export.setImageName(TableConstants.VIEW_CSV);
}
export.addAttribute(CsvView.DELIMITER, getDelimiter());
}
}
現在你添加了屬性值到Export對象,下面是CsvView實現的一部分:
public class CsvView implements View {
public void body(TableModel model, Column column) {
Export export = model.getExportHandler().getCurrentExport();
}
}
另外,你也可以定制自己的標簽和自己的TLD文件。你不需要修改extremecomponents.tld文件。 你能象使用eXtremeTable里的標簽一樣使用自己的標簽,除了使用你自己標簽的參照。假如你的標簽參照為mycompany 并且標簽為customExport,你可以像下面一樣使用他們:
<ec:table
items="presidents"
action="${pageContext.request.contextPath}/public/demo/presidents.jsp"
title="Presidents"
>
<mycompany:customExport fileName="presidents.txt" delimiter="|"/>
...
</ec:table>
posted on 2006-02-27 14:28 Lucky 閱讀(611) 評論(0) 編輯 收藏 所屬分類: extremeComponents