Index: lams_build/3rdParty.userlibraries
===================================================================
RCS file: /usr/local/cvsroot/lams_build/3rdParty.userlibraries,v
diff -u -r1.39 -r1.40
--- lams_build/3rdParty.userlibraries 16 Mar 2009 02:36:50 -0000 1.39
+++ lams_build/3rdParty.userlibraries 25 Mar 2009 20:50:39 -0000 1.40
@@ -112,5 +112,7 @@
+
+
Index: lams_build/build.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_build/build.xml,v
diff -u -r1.76 -r1.77
--- lams_build/build.xml 28 Feb 2009 13:46:21 -0000 1.76
+++ lams_build/build.xml 25 Mar 2009 20:50:39 -0000 1.77
@@ -134,6 +134,8 @@
+
+
Index: lams_build/conf/j2ee/lams.application.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_build/conf/j2ee/lams.application.xml,v
diff -u -r1.9 -r1.10
--- lams_build/conf/j2ee/lams.application.xml 28 Feb 2009 13:46:20 -0000 1.9
+++ lams_build/conf/j2ee/lams.application.xml 25 Mar 2009 20:50:39 -0000 1.10
@@ -250,6 +250,12 @@
lucene-snowball-2.4.0.jar
+
+ jxl.jar
+
+
+ opencsv-1.8.jar
+
Index: lams_build/conf/j2ee/rams.application.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_build/conf/j2ee/Attic/rams.application.xml,v
diff -u -r1.7 -r1.8
--- lams_build/conf/j2ee/rams.application.xml 6 Feb 2009 02:11:22 -0000 1.7
+++ lams_build/conf/j2ee/rams.application.xml 25 Mar 2009 20:50:39 -0000 1.8
@@ -243,7 +243,19 @@
JabberHTTPBind-1.1.1.jar
-
+
+
+ lucene-core-2.4.0.jar
+
+
+ lucene-snowball-2.4.0.jar
+
+
+ jxl.jar
+
+
+ opencsv-1.8.jar
+
Index: lams_build/lib/csv/opencsv-1.8.jar
===================================================================
RCS file: /usr/local/cvsroot/lams_build/lib/csv/Attic/opencsv-1.8.jar,v
diff -u
Binary files differ
Index: lams_build/lib/csv/src/opencsv-1.8-src.zip
===================================================================
RCS file: /usr/local/cvsroot/lams_build/lib/csv/src/Attic/opencsv-1.8-src.zip,v
diff -u
Binary files differ
Index: lams_build/lib/excel/jxl.jar
===================================================================
RCS file: /usr/local/cvsroot/lams_build/lib/excel/Attic/jxl.jar,v
diff -u
Binary files differ
Index: lams_build/lib/excel/src/jexcelapi-2.6-src.zip
===================================================================
RCS file: /usr/local/cvsroot/lams_build/lib/excel/src/Attic/jexcelapi-2.6-src.zip,v
diff -u
Binary files differ
Index: lams_build/lib/lams/lams-central.jar
===================================================================
RCS file: /usr/local/cvsroot/lams_build/lib/lams/lams-central.jar,v
diff -u -r1.59 -r1.60
Binary files differ
Index: lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java,v
diff -u -r1.25 -r1.26
--- lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java 21 Mar 2009 10:35:17 -0000 1.25
+++ lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java 25 Mar 2009 20:50:50 -0000 1.26
@@ -166,4 +166,12 @@
public static final String USER_MANAGEMENT_SERVICE_BEAN_NAME = "userManagementService";
public static final String PARAM_FILTER_TEXT = "filterText";
+
+ public static final String HEADER_CONTENT_DISPOSITION = "Content-Disposition";
+
+ public static final String RESPONSE_CONTENT_TYPE_DOWNLOAD = "application/x-download";
+
+ public static final String FILE_EXTENSION_XLS = ".xls";
+
+ public static final String FILE_EXTENSION_CSV = ".csv";
}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java,v
diff -u -r1.31 -r1.32
--- lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java 25 Feb 2009 18:24:10 -0000 1.31
+++ lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java 25 Mar 2009 20:51:08 -0000 1.32
@@ -29,8 +29,10 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
+import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
+import java.io.Writer;
import java.net.URLEncoder;
import java.nio.channels.FileChannel;
import java.util.Date;
@@ -39,6 +41,14 @@
import javax.mail.internet.MimeUtility;
import javax.servlet.http.HttpServletRequest;
+import jxl.JXLException;
+import jxl.Workbook;
+import jxl.write.DateTime;
+import jxl.write.Label;
+import jxl.write.WritableCell;
+import jxl.write.WritableSheet;
+import jxl.write.WritableWorkbook;
+
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.hibernate.Hibernate;
@@ -49,6 +59,8 @@
import org.lamsfoundation.lams.learningdesign.service.ToolContentVersionFilter;
import org.lamsfoundation.lams.util.zipfile.ZipFileUtilException;
+import au.com.bytecode.opencsv.CSVWriter;
+
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.converters.ConversionException;
@@ -761,4 +773,80 @@
return null;
}
}
+
+ public static void exportToExcel(OutputStream out, String sheetName, String title, String dateHeader,
+ String[] columnNames, Object[][] data) throws IOException, JXLException {
+ WritableWorkbook workbook = Workbook.createWorkbook(out);
+ WritableSheet sheet = workbook.createSheet(sheetName, 0);
+ if (!StringUtils.isEmpty(title)) {
+ sheet.addCell(new Label(0, 0, title));
+ }
+ if (!StringUtils.isEmpty(dateHeader)) {
+ sheet.addCell(new Label(0, 1, dateHeader));
+ sheet.addCell(new DateTime(1, 1, new Date()));
+ }
+ if (columnNames != null) {
+ for (int columnIndex = 0; columnIndex < columnNames.length; columnIndex++) {
+ sheet.addCell(new Label(columnIndex, 3, columnNames[columnIndex]));
+ }
+ }
+ if (data != null) {
+ for (int columnIndex = 0; columnIndex < data.length; columnIndex++) {
+ for (int rowIndex = 0; rowIndex < data[columnIndex].length; rowIndex++) {
+ Object content = data[columnIndex][rowIndex];
+ if (content != null) {
+ WritableCell cell = null;
+ if (content instanceof Number) {
+ Number number = (Number) content;
+ cell = new jxl.write.Number(columnIndex, rowIndex, number.doubleValue());
+ } else if (content instanceof Date) {
+ Date date = (Date) content;
+ cell = new DateTime(columnIndex, rowIndex, date);
+ } else if (content instanceof Boolean) {
+ Boolean bool = (Boolean) content;
+ cell = new jxl.write.Boolean(columnIndex, rowIndex, bool);
+ } else {
+ cell = new Label(columnIndex, rowIndex, content.toString());
+ }
+ sheet.addCell(cell);
+ }
+ }
+ }
+ }
+ workbook.write();
+ workbook.close();
+ }
+
+ public static void exportToCSV(OutputStream out, String title, String dateHeader, String[] columnNames,
+ Object[][] data) throws IOException {
+ Writer writer = new OutputStreamWriter(out);
+ CSVWriter csv = new CSVWriter(writer);
+ String[] line = null;
+ if (!StringUtils.isEmpty(title)) {
+ line = new String[] { title };
+ csv.writeNext(line);
+ }
+ if (!StringUtils.isEmpty(dateHeader)) {
+ line = new String[] { dateHeader, new Date().toString() };
+ csv.writeNext(line);
+ }
+ if (columnNames != null) {
+ line = new String[] {};
+ csv.writeNext(line);
+ csv.writeNext(columnNames);
+ }
+ if (data != null) {
+ for (int columnIndex = 0; columnIndex < data.length; columnIndex++) {
+ line = new String[data[columnIndex].length];
+ for (int rowIndex = 0; rowIndex < data[columnIndex].length; rowIndex++) {
+ Object content = data[columnIndex][rowIndex];
+ if (content != null) {
+ line[rowIndex] = content.toString();
+ }
+ }
+ csv.writeNext(line);
+ }
+ }
+ csv.close();
+ }
}
\ No newline at end of file