/*******************************************************************************
* 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 jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import org.springframework.web.servlet.view.document.AbstractJExcelView;
import com.extjs.gxt.ui.client.data.BaseModel;
public class UserAssignmentReportToXlsView extends AbstractJExcelView{
@Override
protected void buildExcelDocument(Map<String, Object> 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")
List<BaseModel> hours = (List<BaseModel>) model.get("Hours");
WritableSheet sheet = workbook.createSheet("Assignment->User Export", 0);
sheet.addCell(new Label(0, 0, "User Name"));
sheet.addCell(new Label(1, 0, "Assignment"));
sheet.addCell(new Label(2, 0, "Hour"));
sheet.addCell(new Label(3, 0, "Department"));
sheet.addCell(new Label(4, 0, "Branch"));
sheet.addCell(new Label(5, 0, "inRateSum"));
sheet.addCell(new Label(6, 0, "inRateSum"));
int rowNum = 1;
sheet.setColumnView(0, 40);
sheet.setColumnView(1, 40);
sheet.setColumnView(2, 10);
sheet.setColumnView(3, 20);
sheet.setColumnView(4, 20);
sheet.setColumnView(5, 10);
sheet.setColumnView(6, 10);
for(BaseModel b: hours){
sheet.addCell(new Label(0, rowNum,b.get("username").toString()));
sheet.addCell(new Label(1, rowNum,b.get("assignment").toString()));
sheet.addCell(new jxl.write.Number(2, rowNum,Double.parseDouble(b.get("hour").toString())));
sheet.addCell(new Label(3, rowNum,b.get("department").toString()));
sheet.addCell(new Label(4, rowNum,b.get("branch").toString()));
sheet.addCell(new jxl.write.Number(5, rowNum,Double.parseDouble(b.get("inratesum").toString())));
sheet.addCell(new jxl.write.Number(6, rowNum,Double.parseDouble(b.get("extratesum").toString())));
rowNum++;
}
}
}