KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > displaytag > export > ExcelView


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 package org.displaytag.export;
13
14 import org.apache.commons.lang.StringUtils;
15 import org.displaytag.model.TableModel;
16
17
18 /**
19  * Export view for excel exporting.
20  * @author Fabrizio Giustina
21  * @version $Revision: 720 $ ($Author: fgiust $)
22  */

23 public class ExcelView extends BaseExportView
24 {
25
26     /**
27      * @see org.displaytag.export.BaseExportView#setParameters(TableModel, boolean, boolean, boolean)
28      */

29     public void setParameters(TableModel tableModel, boolean exportFullList, boolean includeHeader,
30         boolean decorateValues)
31     {
32         super.setParameters(tableModel, exportFullList, includeHeader, decorateValues);
33     }
34
35     /**
36      * @see org.displaytag.export.ExportView#getMimeType()
37      * @return "application/vnd.ms-excel"
38      */

39     public String JavaDoc getMimeType()
40     {
41         return "application/vnd.ms-excel"; //$NON-NLS-1$
42
}
43
44     /**
45      * @see org.displaytag.export.BaseExportView#getRowEnd()
46      */

47     protected String JavaDoc getRowEnd()
48     {
49         return "\n"; //$NON-NLS-1$
50
}
51
52     /**
53      * @see org.displaytag.export.BaseExportView#getCellEnd()
54      */

55     protected String JavaDoc getCellEnd()
56     {
57         return "\t"; //$NON-NLS-1$
58
}
59
60     /**
61      * @see org.displaytag.export.BaseExportView#getAlwaysAppendCellEnd()
62      * @return false
63      */

64     protected boolean getAlwaysAppendCellEnd()
65     {
66         return false;
67     }
68
69     /**
70      * @see org.displaytag.export.BaseExportView#getAlwaysAppendRowEnd()
71      * @return false
72      */

73     protected boolean getAlwaysAppendRowEnd()
74     {
75         return false;
76     }
77
78     /**
79      * Escaping for excel format.
80      * <ul>
81      * <li>Quotes inside quoted strings are escaped with a double quote</li>
82      * <li>Fields are surrounded by " (should be optional, but sometimes you get a "Sylk error" without those)</li>
83      * </ul>
84      * @see org.displaytag.export.BaseExportView#escapeColumnValue(java.lang.Object)
85      */

86     protected String JavaDoc escapeColumnValue(Object JavaDoc value)
87     {
88         if (value != null)
89         {
90             // quotes around fields are needed to avoid occasional "Sylk format invalid" messages from excel
91
return "\"" //$NON-NLS-1$
92
+ StringUtils.replace(StringUtils.trim(value.toString()), "\"", "\"\"") //$NON-NLS-1$ //$NON-NLS-2$
93
+ "\""; //$NON-NLS-1$
94
}
95
96         return null;
97     }
98
99 }
100
Popular Tags