Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package bean; import com.liferay.faces.portal.context.LiferayFacesContext; import com.liferay.portal.theme.ThemeDisplay; import java.io.File; import java.io.FileOutputStream; import java.io.Serializable; import java.text.DecimalFormat; import java.util.Date; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFDataFormat; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Font; /** * * @author misteam */ @ManagedBean @RequestScoped public class StatementOfFinancialConditionExport implements Serializable { /** * Creates a new instance of StatementOfFinancialConditionExport */ public StatementOfFinancialConditionExport() { } /* * properties */ @ManagedProperty(value = "#{exportData}") private ExportData exportData; @ManagedProperty(value = "#{financialReportData}") private FinancialReportData financialReportData; @ManagedProperty(value = "#{statementOfFinancialConditionData}") private StatementOfFinancialConditionData statementOfFinancialConditionData; @ManagedProperty(value = "#{dataConvert}") private DataConvert dataConvert; /* * getter setter */ public ExportData getExportData() { return exportData == null ? exportData = new ExportData() : exportData; } public void setExportData(ExportData exportData) { this.exportData = exportData; } public FinancialReportData getFinancialReportData() { return financialReportData == null ? financialReportData = new FinancialReportData() : financialReportData; } public void setFinancialReportData(FinancialReportData financialReportData) { this.financialReportData = financialReportData; } public StatementOfFinancialConditionData getStatementOfFinancialConditionData() { return statementOfFinancialConditionData == null ? statementOfFinancialConditionData = new StatementOfFinancialConditionData() : statementOfFinancialConditionData; } public void setStatementOfFinancialConditionData( StatementOfFinancialConditionData statementOfFinancialConditionData) { this.statementOfFinancialConditionData = statementOfFinancialConditionData; } public DataConvert getDataConvert() { return dataConvert == null ? dataConvert = new DataConvert() : dataConvert; } public void setDataConvert(DataConvert dataConvert) { this.dataConvert = dataConvert; } /* * methods */ public void export0() { Integer columnNo; HSSFWorkbook workbook; HSSFSheet sheet; HSSFRow dataRow; HSSFCell cell; HSSFCellStyle cellStyle, boldStyle; HSSFFont font; ThemeDisplay themeDisplay = LiferayFacesContext.getInstance().getThemeDisplay(); getExportData().createFolder(null, themeDisplay, "Statement of Financial Condition Report", "DESCRIPTION"); if (getExportData().getFilename() == null || getExportData().getFilename().length() == 0) { getExportData().setFilename("Default(" + new Date() + ")"); } getExportData().setFilename(getExportData().getFilename().replace(":", "")); try { getExportData().setFilename(getExportData().getFilename().concat(".xls")); workbook = new HSSFWorkbook(); cellStyle = workbook.createCellStyle(); cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); font = workbook.createFont(); font.setBoldweight(Font.BOLDWEIGHT_BOLD); boldStyle = workbook.createCellStyle(); boldStyle.setFont(font); sheet = workbook.createSheet( "Statement of Financial Condition Report " + getFinancialReportData().getCurrentMonth() != null ? getDataConvert().monthConvert(getFinancialReportData().getCurrentMonth()) + " " + getFinancialReportData().getCurrentYear().toString() : getFinancialReportData().getCurrentYear().toString()); dataRow = sheet.createRow((short) 0); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue("STATEMENT OF FINANCIAL CONDITION"); cell.setCellStyle(boldStyle); dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue(getFinancialReportData().getCurrentMonth() != null ? getDataConvert().monthConvert(getFinancialReportData().getCurrentMonth()) + " " + getFinancialReportData().getCurrentYear().toString() : getFinancialReportData().getCurrentYear().toString()); cell.setCellStyle(boldStyle); dataRow = sheet.createRow(dataRow.getRowNum() + 1); dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue("ASSETS"); cell.setCellStyle(boldStyle); // for (int i = 0; i < getStatementOfFinancialConditionData().getAssetsLevel2().size(); i++) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue(getStatementOfFinancialConditionData().getAssetsLevel2().get(i).getAcctTitle()); cell.setCellStyle(boldStyle); // dataRow.createCell(columnNo++).setCellValue(""); if (getStatementOfFinancialConditionData().getAssetsLevel3().get(i).isEmpty()) { cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(getStatementOfFinancialConditionData().getAssetsLevel2().get(i).getAmount() .doubleValue()); cell.setCellStyle(cellStyle); } // for (int ii = 0; ii < getStatementOfFinancialConditionData().getAssetsLevel3().get(i) .size(); ii++) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; dataRow.createCell(columnNo++).setCellValue(""); dataRow.createCell(columnNo++).setCellValue( getStatementOfFinancialConditionData().getAssetsLevel3().get(i).get(ii).getAcctTitle()); cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(getStatementOfFinancialConditionData().getAssetsLevel3().get(i).get(ii) .getAmount().doubleValue()); cell.setCellStyle(cellStyle); if (ii == getStatementOfFinancialConditionData().getAssetsLevel3().get(i).size() - 1) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; dataRow.createCell(columnNo++).setCellValue(""); cell = dataRow.createCell(columnNo++); cell.setCellValue("TOTAL"); cell.setCellStyle(boldStyle); cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue( getStatementOfFinancialConditionData().getAssetsLevel2Total().get(i).doubleValue()); cell.setCellStyle(cellStyle); } } if (i == getStatementOfFinancialConditionData().getAssetsLevel2().size() - 1) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue("TOTAL ASSETS"); cell.setCellStyle(boldStyle); dataRow.createCell(columnNo++).setCellValue(""); cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); // cell.setCellValue(getStatementOfFinancialConditionData().getAssetsLevel2Total().get(i).doubleValue()); cell.setCellValue(getStatementOfFinancialConditionData().getAssetLevel1Total().doubleValue()); cell.setCellStyle(cellStyle); } } // dataRow = sheet.createRow(dataRow.getRowNum() + 1); dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue("LIABILITIES AND EQUITY"); cell.setCellStyle(boldStyle); dataRow = sheet.createRow(dataRow.getRowNum() + 1); dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue("LIABILITIES"); cell.setCellStyle(boldStyle); // for (int i = 0; i < getStatementOfFinancialConditionData().getLiabilitiesLevel2().size(); i++) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue( getStatementOfFinancialConditionData().getLiabilitiesLevel2().get(i).getAcctTitle()); cell.setCellStyle(boldStyle); // dataRow.createCell(columnNo++).setCellValue(""); if (getStatementOfFinancialConditionData().getLiabilitiesLevel3().get(i).isEmpty()) { cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(getStatementOfFinancialConditionData().getLiabilitiesLevel2().get(i) .getAmount().doubleValue()); cell.setCellStyle(cellStyle); } // for (int ii = 0; ii < getStatementOfFinancialConditionData().getLiabilitiesLevel3().get(i) .size(); ii++) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; dataRow.createCell(columnNo++).setCellValue(""); dataRow.createCell(columnNo++).setCellValue(getStatementOfFinancialConditionData() .getLiabilitiesLevel3().get(i).get(ii).getAcctTitle()); cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(getStatementOfFinancialConditionData().getLiabilitiesLevel3().get(i).get(ii) .getAmount().doubleValue()); cell.setCellStyle(cellStyle); if (ii == getStatementOfFinancialConditionData().getLiabilitiesLevel3().get(i).size() - 1) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; dataRow.createCell(columnNo++).setCellValue(""); cell = dataRow.createCell(columnNo++); cell.setCellValue("TOTAL"); cell.setCellStyle(boldStyle); cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(getStatementOfFinancialConditionData().getLiabilitiesLevel2Total().get(i) .doubleValue()); cell.setCellStyle(cellStyle); } } if (i == getStatementOfFinancialConditionData().getLiabilitiesLevel2().size() - 1) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue("TOTAL LIABILITIES"); cell.setCellStyle(boldStyle); dataRow.createCell(columnNo++).setCellValue(""); cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); // cell.setCellValue(getStatementOfFinancialConditionData().getLiabilitiesLevel2Total().get(i).doubleValue()); cell.setCellValue( getStatementOfFinancialConditionData().getLiabilityLevel1Total().doubleValue()); cell.setCellStyle(cellStyle); } } // dataRow = sheet.createRow(dataRow.getRowNum() + 1); dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue("EQUITY"); cell.setCellStyle(boldStyle); // for (int i = 0; i < getStatementOfFinancialConditionData().getEquitiesLevel2().size(); i++) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue(getStatementOfFinancialConditionData().getEquitiesLevel2().get(i).getAcctTitle()); cell.setCellStyle(boldStyle); // dataRow.createCell(columnNo++).setCellValue(""); if (getStatementOfFinancialConditionData().getEquitiesLevel3().get(i).isEmpty()) { cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(getStatementOfFinancialConditionData().getEquitiesLevel2().get(i).getAmount() .doubleValue()); cell.setCellStyle(cellStyle); } // for (int ii = 0; ii < getStatementOfFinancialConditionData().getEquitiesLevel3().get(i) .size(); ii++) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; dataRow.createCell(columnNo++).setCellValue(""); dataRow.createCell(columnNo++).setCellValue(getStatementOfFinancialConditionData() .getEquitiesLevel3().get(i).get(ii).getAcctTitle()); cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(getStatementOfFinancialConditionData().getEquitiesLevel3().get(i).get(ii) .getAmount().doubleValue()); cell.setCellStyle(cellStyle); if (ii == getStatementOfFinancialConditionData().getEquitiesLevel3().get(i).size() - 1) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; dataRow.createCell(columnNo++).setCellValue(""); cell = dataRow.createCell(columnNo++); cell.setCellValue("TOTAL"); cell.setCellStyle(boldStyle); cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(getStatementOfFinancialConditionData().getEquitiesLevel2Total().get(i) .doubleValue()); cell.setCellStyle(cellStyle); } } if (i == getStatementOfFinancialConditionData().getEquitiesLevel2().size() - 1) { dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue("TOTAL EQUITY"); cell.setCellStyle(boldStyle); dataRow.createCell(columnNo++).setCellValue(""); cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); // cell.setCellValue(getStatementOfFinancialConditionData().getEquitiesLevel2Total().get(i).doubleValue()); cell.setCellValue(getStatementOfFinancialConditionData().getEquityLevel1Total().doubleValue()); cell.setCellStyle(cellStyle); dataRow = sheet.createRow(dataRow.getRowNum() + 1); columnNo = 0; cell = dataRow.createCell(columnNo++); cell.setCellValue("TOTAL LIABILITIES AND EQUITY"); cell.setCellStyle(boldStyle); dataRow.createCell(columnNo++).setCellValue(""); cell = dataRow.createCell(columnNo++); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue( getStatementOfFinancialConditionData().getLiabilityEquityLevel1Total().doubleValue()); cell.setCellStyle(cellStyle); } } FileOutputStream fileOutputStream = new FileOutputStream(getExportData().getFilename()); workbook.write(fileOutputStream); fileOutputStream.close(); getExportData().fileUploadByDL(getExportData().getFilename(), "Statement of Financial Condition Report", themeDisplay, null); File file = new File(getExportData().getFilename()); if (file.exists()) { file.delete(); } } catch (Exception e) { System.out.print("statementOfFinancialConditionExport().export0() " + e); FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", "An error occurred while generating excel file."); FacesContext.getCurrentInstance().addMessage(null, message); } } }