package com.infinity.bpm.portal.common.table.export; import java.io.File; import java.util.Date; import javax.faces.context.FacesContext; import com.icesoft.faces.component.dataexporter.ExcelOutputHandler; import com.icesoft.faces.util.CoreUtils; /** * @author Subodh.Godbole * */ public class CustomExcelExporter extends ExcelOutputHandler { private final static String EXPORT_FOLDER = "export"; private final static String EXPORT_FILE_PREFIX = "export_"; private boolean used; /** * @param dataTable * @param dataTableExportHandler */ public CustomExcelExporter() { super(getExportFilePath(ExportType.EXCEL), FacesContext.getCurrentInstance(), "WorkSheet"); } @Override public void writeCell(Object output, int col, int row) { super.writeCell(output, col, row); used = true; } @Override public void writeHeaderCell(String text, int col) { super.writeHeaderCell(text, col); } @Override public void flushFile() { super.flushFile(); } public boolean isUsed() { return used; } /** * @param exportType * @return */ public static String getExportFilePath(ExportType exportType) { String exportDirPath = CoreUtils.getRealPath(FacesContext.getCurrentInstance(), (File.separator + EXPORT_FOLDER)); File exportDir = new File(exportDirPath); if (!exportDir.exists()) { exportDir.mkdirs(); } String exportFilePath = exportDir + File.separator + EXPORT_FILE_PREFIX + new Date().getTime() + exportType.getExtension(); return exportFilePath; } }