Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 2013-2014 sagyf Yang. The Four Group.
   */
  
  package com.github.sog.render;
  
 
 import java.util.List;

Excel file Render

Author(s):
sagyf yang
Version:
1.0 2014-02-12 21:05
Since:
JDK 1.6
 
 public class ExcelRender extends Render {
     private static final long serialVersionUID = -3568563627255175353L;
     private final static String CONTENT_TYPE = "application/msexcel;charset=" + getEncoding();
     protected final      Logger LOG          = Logger.getLogger(getClass());
     private final List<?>  data;
     private       String[] headers;
     private String sheetName = "sheet1";
     private int cellWidth;
     private String[] columns  = new String[]{};
     private String   fileName = "file1.xls";
     private int headerRow;
 
     public ExcelRender(List<?> data) {
         this. = data;
     }
 
     public static ExcelRender me(List<?> data) {
         return new ExcelRender(data);
     }
 
     private static String encodeChineseDownloadFileName(HttpServletRequest requestString filename) {
         String agent = request.getHeader("USER-AGENT");
         try {
             if (!Strings.isNullOrEmpty(agent) && agent.contains("MSIE")) {
                 filename = URLEncoder.encode(filename"utf-8");
             } else {
                 filename = new String(filename.getBytes("utf-8"), "iso8859-1");
             }
         } catch (UnsupportedEncodingException ignored) {
 
         }
         return filename;
     }
 
     @Override
     public void render() {
         .reset();
         .setHeader("Content-disposition""attachment; filename=" + encodeChineseDownloadFileName());
         OutputStream os = null;
         try {
             os = .getOutputStream();
                     .cellWidth().export().write(os);
         } catch (Exception e) {
             throw new RenderException(e);
         } finally {
             try {
                 if (os != null) {
                     os.flush();
                     os.close();
                 }
             } catch (IOException e) {
                 .error(e.getMessage(), e);
             }
 
         }
     }
 
     public ExcelRender headers(String... headers) {
         this. = headers;
         return this;
     }
 
     public ExcelRender headerRow(int headerRow) {
         this. = headerRow;
         return this;
     }
 
    public ExcelRender columns(String... columns) {
        this. = columns;
        return this;
    }
    public ExcelRender sheetName(String sheetName) {
        this. = sheetName;
        return this;
    }
    public ExcelRender cellWidth(int cellWidth) {
        this. = cellWidth;
        return this;
    }
    public ExcelRender fileName(String fileName) {
        this. = fileName;
        return this;
    }
New to GrepCode? Check out our FAQ X