Code:
public class ProviderListReportView extends AbstractJExcelView {
private static Logger logger=Logger.getLogger(ProviderListReportView.class);
protected void buildExcelDocument(Map model,
WritableWorkbook workbook,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
logger.debug("Building and Formating ProviderListData...");
List<ProviderListReport> providerListReportList =
(List<ProviderListReport>)((Map)model.get("model")).get("providerListReportList");
// If empty fill in empty object into the list
if (providerListReportList == null) {
providerListReportList = new ArrayList<ProviderListReport>();
}
WritableSheet sheet = workbook.createSheet("Provider List Report", 0);
// Cell format for the title
WritableFont arial15Boldfont = new WritableFont(WritableFont.ARIAL, 15,
WritableFont.BOLD);
arial15Boldfont.setColour(Colour.GREEN);
WritableCellFormat arial15format = new WritableCellFormat(
arial15Boldfont);
arial15format.setAlignment(Alignment.CENTRE);
// Create a cell format for Arial 10 point font for header
WritableFont arial10Boldfont = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.BOLD);
WritableCellFormat arial10format = new WritableCellFormat(
arial10Boldfont);
arial10format.setBackground(Colour.GREEN);
arial10Boldfont.setColour(Colour.WHITE);
arial10format.setAlignment(Alignment.CENTRE);
arial10format.setBorder(Border.ALL, BorderLineStyle.THIN);
// Create a cell format for Arial 8 point for data
WritableFont arial8font = new WritableFont(WritableFont.ARIAL, 8);
WritableCellFormat arial8format = new WritableCellFormat(arial8font);
arial8format.setAlignment(Alignment.LEFT);
arial8format.setVerticalAlignment(VerticalAlignment.TOP);
arial8format.setWrap(true);
sheet.setHeader("", "Provider List Report", "");
sheet.addCell(new Label(3, 1, "Provider List Report", arial15format));
sheet
.addCell(new Label(5, 1, "Report generated on: "
+ new java.util.Date(System.currentTimeMillis()),
arial8format));
int xx = 0;
int yy = 2;
// Created the Header for the data
sheet.addCell(new Label(xx, yy, "Provider Code", arial10format));
sheet.setColumnView(xx, "Provider Code".length() + 3);
sheet.addCell(new Label(xx + 1, yy, "Provider Name", arial10format));
sheet.setColumnView(xx + 1, "Provider Name".length() + 3);
sheet.addCell(new Label(xx + 2, yy, "Delivery", arial10format));
sheet.setColumnView(xx + 2, "Delivery".length() + 3);
sheet.addCell(new Label(xx + 3, yy, "Provider Notes", arial10format));
sheet.setColumnView(xx + 3, "Provider Notes".length() + 3);
sheet.addCell(new Label(xx + 4, yy, "Exclude From Search",
arial10format));
sheet.setColumnView(xx + 4, "Exclude From Search".length() + 3);
sheet.addCell(new Label(xx + 5, yy, "Exclude From Whole House",
arial10format));
sheet.setColumnView(xx + 5, "Exclude From Whole House".length() + 3);
sheet.addCell(new Label(xx + 6, yy, "Created Date", arial10format));
sheet.setColumnView(xx + 6, "Created Date".length() + 3);
sheet.addCell(new Label(xx + 7, yy, "Created By", arial10format));
sheet.setColumnView(xx + 7, "Created By".length() + 3);
sheet.addCell(new Label(xx + 8, yy, "Call Letter", arial10format));
sheet.setColumnView(xx + 8, "Call Letter".length() + 3);
sheet.addCell(new Label(xx + 9, yy, "Domain Name", arial10format));
sheet.setColumnView(xx + 9, "Domain Name".length() + 3);
sheet.addCell(new Label(0, 1, "Total records: "
+ providerListReportList.size(), arial8format));
Iterator<ProviderListReport> it = (providerListReportList).iterator();
int x = 0;
int y = 3;
while (it.hasNext()) {
ProviderListReport plrModel = it.next();
Number n1 = new Number(x, y, Double.parseDouble(plrModel
.getProviderCode()), arial8format);
sheet.addCell(n1);
if (n1.getContents().length() > "Provider Code".length() + 3)
sheet.setColumnView(x, (n1.getContents().length() + 3));
Label lable2 = new Label(x + 1, y, plrModel.getProviderName(),
arial8format);
sheet.addCell(lable2);
if (lable2.getContents().length() > "Provider Name".length() + 3)
sheet.setColumnView(x + 1, (lable2.getContents().length() + 3));
Label lable3 = new Label(x + 2, y, plrModel.getDelivery(),
arial8format);
sheet.addCell(lable3);
if (lable3.getContents().length() > "Delivery".length() + 3)
sheet.setColumnView(x + 2, (lable3.getContents().length() + 3));
Label lable4 = new Label(x + 3, y, plrModel.getProviderNotes(),
arial8format);
sheet.addCell(lable4);
if (lable4.getContents().length() > "Provider Notes".length() + 3)
sheet.setColumnView(x + 3, (lable4.getContents().length() + 5));
Label lable5 = new Label(x + 4, y, plrModel.getExcludeFromSearch(),
arial8format);
sheet.addCell(lable5);
if (lable5.getContents().length() > "Exclude From Search".length() + 3)
sheet.setColumnView(x + 4, (lable5.getContents().length() + 3));
Label lable6 = new Label(x + 5, y, plrModel
.getExcludeFromWholeHouse(), arial8format);
sheet.addCell(lable6);
if (lable6.getContents().length() > "Exclude From Whole House"
.length() + 3)
sheet.setColumnView(x + 5, (lable6.getContents().length() + 3));
Label lable7 = new Label(x + 6, y, plrModel.getCreatedDate()
.toString(), arial8format);
sheet.addCell(lable7);
if (lable7.getContents().length() > "Created Date".length() + 3)
sheet.setColumnView(x + 6, (lable7.getContents().length() + 3));
Label lable8 = new Label(x + 7, y, plrModel.getCreatedBy(),
arial8format);
sheet.addCell(lable8);
if (lable8.getContents().length() > "Created By".length() + 3)
sheet.setColumnView(x + 7, (lable8.getContents().length() + 3));
Label lable9 = new Label(x + 8, y, plrModel.getCallLetter(),
arial8format);
sheet.addCell(lable9);
if (lable9.getContents().length() > "Call Letter".length() + 3)
sheet.setColumnView(x + 8, (lable9.getContents().length() + 3));
Label lable10 = new Label(x + 9, y, plrModel.getDomainName(),
arial8format);
sheet.addCell(lable10);
if (lable10.getContents().length() > "Domain Name".length() + 3)
sheet.setColumnView(x + 9, (lable10.getContents().length() + 3));
y++;
}
}
}