Home » displaytag-1.1.1-src » org » displaytag » export » excel » [javadoc | source]

    1   /**
    2    * Licensed under the Artistic License; you may not use this file
    3    * except in compliance with the License.
    4    * You may obtain a copy of the License at
    5    *
    6    *      http://displaytag.sourceforge.net/license.html
    7    *
    8    * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
    9    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   10    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   11    */
   12   
   13   package org.displaytag.export.excel;
   14   
   15   import java.io.IOException;
   16   import java.io.OutputStream;
   17   
   18   import javax.servlet.jsp.JspException;
   19   
   20   import org.apache.poi.hssf.usermodel.HSSFWorkbook;
   21   import org.displaytag.Messages;
   22   import org.displaytag.exception.BaseNestableJspTagException;
   23   import org.displaytag.exception.SeverityEnum;
   24   import org.displaytag.export.BinaryExportView;
   25   import org.displaytag.model.TableModel;
   26   import org.displaytag.render.HssfTableWriter;
   27   
   28   /**
   29    * Excel exporter using POI.
   30    * 
   31    * @author Jorge L. Barroso
   32    * @version $Revision$ ($Author$)
   33    */
   34   public class DefaultHssfExportView implements BinaryExportView
   35   {
   36       /**
   37        * TableModel to render.
   38        */
   39       private TableModel model;
   40       
   41       /**
   42        * @see org.displaytag.export.BinaryExportView#doExport(java.io.OutputStream)
   43        */
   44       public void doExport(OutputStream out) throws IOException, JspException
   45       {
   46           try
   47           {
   48               HSSFWorkbook wb = new HSSFWorkbook();
   49               new HssfTableWriter(wb).writeTable(this.model, "-1");
   50               wb.write(out);
   51           }
   52           catch (Exception e)
   53           {
   54               throw new HssfGenerationException(e);
   55           }
   56       }
   57   
   58       /** 
   59        * @see org.displaytag.export.ExportView#setParameters(org.displaytag.model.TableModel, boolean, boolean, boolean)
   60        */
   61       public void setParameters(TableModel model, boolean exportFullList,
   62               boolean includeHeader, boolean decorateValues)
   63       {
   64           this.model = model;
   65       }
   66   
   67       /**
   68        * @see org.displaytag.export.BaseExportView#getMimeType()
   69        * @return "application/vnd.ms-excel"
   70        */
   71       public String getMimeType()
   72       {
   73           return "application/vnd.ms-excel"; //$NON-NLS-1$
   74       }
   75       
   76       /**
   77        * Wraps POI-generated exceptions.
   78        * @author Fabrizio Giustina
   79        * @version $Revision$ ($Author$)
   80        */
   81       static class HssfGenerationException extends BaseNestableJspTagException
   82       {
   83           /**
   84            * D1597A17A6.
   85            */
   86           private static final long serialVersionUID = 899149338534L;
   87   
   88           /**
   89            * Instantiate a new PdfGenerationException with a fixed message and the given cause.
   90            * @param cause Previous exception
   91            */
   92           public HssfGenerationException(Throwable cause)
   93           {
   94               super(DefaultHssfExportView.class, Messages.getString("DefaultHssfExportView.errorexporting"), cause); //$NON-NLS-1$
   95           }
   96   
   97           /**
   98            * @see org.displaytag.exception.BaseNestableJspTagException#getSeverity()
   99            */
  100           public SeverityEnum getSeverity()
  101           {
  102               return SeverityEnum.ERROR;
  103           }
  104       }
  105   }

Home » displaytag-1.1.1-src » org » displaytag » export » excel » [javadoc | source]