123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package com.iamberry.wechat.tools;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.poi.hssf.usermodel.HSSFCell;
- import org.apache.poi.hssf.usermodel.HSSFCellStyle;
- import org.apache.poi.hssf.usermodel.HSSFFont;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.springframework.web.servlet.view.document.AbstractExcelView;
- public class ObjectExcelView extends AbstractExcelView{
- private String name = "";
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
-
- @SuppressWarnings("unchecked")
- @Override
- protected void buildExcelDocument(Map<String, Object> model,
- HSSFWorkbook workbook, HttpServletRequest request,
- HttpServletResponse response) throws Exception {
-
-
-
- Date date = new Date();
- StringBuffer filename = new StringBuffer("soodo-");
- String modelFileName = model.get("fileName").toString();
- if(name == null || "".equals(name)){
- filename.append(DateTimeUtil.format(date, "yyyyMMdd-"));
- }else{
- filename.append(name);
- }
- filename.append(modelFileName == null ? "default" : modelFileName);
-
- HSSFSheet sheet;
- HSSFCell cell;
- sheet = workbook.createSheet("soodo-sheet");
-
-
- response.setContentType("application/octet-stream");
- response.setHeader("Content-Disposition", "attachment;filename="+new String((filename.toString()).getBytes("UTF-8"), "ISO-8859-1")+".xls");
-
-
- List<String> titles = (List<String>) model.get("titles");
- int len = titles.size();
-
-
- HSSFCellStyle headerStyle = workbook.createCellStyle();
- headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
- headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
- HSSFFont headerFont = workbook.createFont();
- headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
- headerFont.setFontHeightInPoints((short)11);
- headerStyle.setFont(headerFont);
- short width = 20,height=25*20;
- sheet.setDefaultColumnWidth(width);
-
-
- for(int i=0; i<len; i++){
- String title = titles.get(i);
- cell = getCell(sheet, 0, i);
- cell.setCellStyle(headerStyle);
- setText(cell,title);
- }
-
- sheet.getRow(0).setHeight(height);
-
-
- HSSFCellStyle contentStyle = workbook.createCellStyle();
- contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
-
-
- List<List<Object>> varList = (List<List<Object>>) model.get("varList");
-
- int row = 1;
- for (List<Object> list : varList) {
-
- int col = 0;
- for (Object object : list) {
-
- cell = getCell(sheet, row, col);
- cell.setCellStyle(contentStyle);
- setText(cell,StrUtils.checkStr(object));
-
- col ++;
- }
-
- row ++;
- }
- }
- }
|