final ContentProvider contentProvider = new MyContentProvider(xls);
// create a default Date format and currency column
xls.setContentProvider(contentProvider);
final String sheetTitle = PFUserContext.getLocalizedString("exportKWProjects");
final ExportSheet sheet = xls.addSheet(sheetTitle);
sheet.createFreezePane(8, 1);
final ExportColumn[] cols = new ExportColumn[] { new I18nExportColumn(Col.WEEK_OF_YEAR, "calendar.weekOfYearShortLabel", 12),
new I18nExportColumn(Col.PROJEKT, "fibu.projekt", MyXlsContentProvider.LENGTH_STD),
new I18nExportColumn(Col.TOTAL_DURATION, "timesheet.totalDuration", MyXlsContentProvider.LENGTH_STD),
new I18nExportColumn(Col.WORKDAYS, "resourceplanning.workdays", MyXlsContentProvider.LENGTH_STD)};
// column property names
sheet.setColumns(cols);
final ContentProvider sheetProvider = sheet.getContentProvider();
// Columnformats
sheetProvider.putFormat(Col.TOTAL_DURATION, "0.00");
sheetProvider.putFormat(Col.WORKDAYS, "0.00");
final PropertyMapping mapping = new PropertyMapping();
// Ermittele Anzahl unterschiedlicher Projekte
final List<String> projectNames = new ArrayList<String>();
for (final HRPlanningDO planningSheet : list) {
// final String projectName = planningSheet.getProjekt().getName();
// boolean exists = false;
// for (int i = 0; i < projectNames.size(); i++) {
// if (projectName.equals(projectNames.get(i))) {
// exists = true;
// }
// }
// if (exists == false) {
// projectNames.add(projectName);
// }
}
// Get StartYear and EndYear from List
// Date year = list.get(0).getStartTime();
// Date startYear = year;
// Date endYear = year;
//
// for (int i = 0; i < list.size(); i++) {
// if (list.get(i).getStartTime().compareTo(startYear) < 0) {
// startYear = list.get(i).getStartTime();
// }
// if (list.get(i).getStartTime().compareTo(endYear) > 0) {
// endYear = list.get(i).getStartTime();
// }
// }
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy");
// int syear = Integer.valueOf(simpleDateFormat.format(startYear));
// int eyear = Integer.valueOf(simpleDateFormat.format(endYear));
// for (int actualYear = syear; actualYear <= eyear; actualYear++) {
// // Add actualYear row
// // ExportRow r = sheet.addRow();
// // r.setValues(String.valueOf(actualYear));
//
// // get maxKW for actual Year
// Calendar cal = Calendar.getInstance(locale);
// cal.set(actualYear, 11, 31);
// int maxKW = Integer.valueOf(dateTimeFormatter.getFormattedDate(cal.getTime(), DateTimeFormatter.I18N_KEY_WEEK_OF_YEAR_FORMAT));
//
// // Durchlaufe KalenderWochen
// for (int kw = 1; kw <= maxKW; kw++) {
//
// List<ExportObject> exportObjects = new LinkedList<ExportObject>();
//
// for (HRPlanningDO planningSheet : list) {
// ExportObject exportObj = new ExportObject();
//
// // If kw=kw && year = actualyear
// if ((Integer.valueOf(dateTimeFormatter.getFormattedDate(planningSheet.getStartTime(),
// DateTimeFormatter.I18N_KEY_WEEK_OF_YEAR_FORMAT)) == kw)
// && (getStartYearfromDO(planningSheet)) == actualYear) {
// exportObj.setProjectName(planningSheet.getProjekt().getName());
// exportObj.setUserName(planningSheet.getUser().getFullname());
// exportObj.setTotalDuration(planningSheet.getTotalDuration());
// exportObjects.add(exportObj);
// }
//
// }
// boolean rowAdded = false;
// for (String projectName : projectNames) {
// BigDecimal totalDur = new BigDecimal(0);
// for (ExportObject obj : exportObjects) {
// if (obj.getProjectName().equals(projectName)) {
// totalDur = totalDur.add(obj.getTotalDuration());
// }
// }
// mapping.add(Col.WEEK_OF_YEAR, String.valueOf(actualYear) + " - " + String.valueOf(kw));
// mapping.add(Col.PROJEKT, projectName);
// mapping.add(Col.TOTAL_DURATION, totalDur);
// // Workdays = totalDur / 8
// mapping.add(Col.WORKDAYS, totalDur.divide(new BigDecimal(8)));
// if (totalDur.equals(new BigDecimal(0)) == false) {
// sheet.addRow(mapping.getMapping(), 0);
// rowAdded = true;
// }
// }
//
// if (rowAdded == false) {
// mapping.add(Col.WEEK_OF_YEAR, String.valueOf(actualYear) + " - " + String.valueOf(kw));
// mapping.add(Col.PROJEKT, " - ");
// mapping.add(Col.TOTAL_DURATION, " - ");
// mapping.add(Col.WORKDAYS, " - ");
// sheet.addRow(mapping.getMapping(), 0);
// }
// }
// }
sheet.setZoom(3, 4); // 75%
return xls;
}