/*******************************************************************************
* Copyright (c) 2012 Dmitry Tikhomirov.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* Dmitry Tikhomirov - initial API and implementation
******************************************************************************/
package org.opensheet.server.exports;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import org.opensheet.shared.model.Assignment;
import org.opensheet.shared.model.Department;
import org.springframework.web.servlet.view.document.AbstractJExcelView;
public class ReportDepartmentAssignemntToXlsView extends AbstractJExcelView{
Logger logger = LoggerFactory.getLogger(ReportDepartmentAssignemntToXlsView.class);
@Override
protected void buildExcelDocument(@SuppressWarnings("rawtypes") Map model, WritableWorkbook workbook,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
response.setContentType("application/vnd.ms-excel");
response.setHeader ("Content-Disposition", "attachment; filename=timesheet.xls");
@SuppressWarnings("unchecked")
Map<Department, List<Assignment>> map =(Map<Department, List<Assignment>>) model.get("data");
WritableSheet sheet = workbook.createSheet("Report->D->A2", 0);
int rowNum = 0;
sheet.setColumnView(0, 50);
sheet.setColumnView(1, 50);
sheet.setColumnView(2, 50);
for(Map.Entry<Department, List<Assignment>> kv : map.entrySet()){
sheet.addCell(new Label(0, rowNum,kv.getKey().getName() ));
sheet.addCell(new Label(1, rowNum,kv.getKey().getOwner().getFullName() ));
rowNum++;
for(Assignment a: kv.getValue()){
sheet.addCell(new Label(1, rowNum,a.getName()));
sheet.addCell(new Label(2, rowNum,a.getOwner().getFullName()));
rowNum++;
}
}
workbook.write();
workbook.close();
}
}