Hi,
It seems that the memory does not get released after the excel document is
created and written into the file!!!
I highly appreciate is anybody can help me with this issue.
Here it is the code I used to create the document.
>public class ExcelWriter {
>
> protected String file = null;
>
> protected FileOutputStream fileOut = null;
>
> protected HSSFWorkbook wb = new HSSFWorkbook();
>
> protected HSSFSheet sheet = wb.createSheet("new sheet");
>
>
>
> HSSFCellStyle dateCellStyle = wb.createCellStyle();
>
> HSSFCellStyle timeCellStyle = wb.createCellStyle();
>
> HSSFCellStyle decimalCellStyle = wb.createCellStyle();
>
> HSSFCellStyle currencyCellStyle = wb.createCellStyle();
>
> HSSFCellStyle stringCellStyle = wb.createCellStyle();
>
> HSSFFont cellFont = wb.createFont();
>
>
>
>
>
>
>
> public void close() throws IOException {
>
> try {
>
> wb.write(fileOut);
>
> fileOut.close();
>
> }catch(Exception e) {
>
> e.printStackTrace();
>
> }
>
> }
>
>
>
> public ExcelWriter(String file) throws IOException{
>
> this.file = file;
>
> fileOut = new FileOutputStream(file);
>
>
>currencyCellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00")
>);
>
>
>decimalCellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0"));
>
>
>dateCellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
>
>
>timeCellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("h:mm
>AM/PM"));
>
> cellFont.setFontHeightInPoints((short)10);
>
> cellFont.setFontName("Courier New");
>
> currencyCellStyle.setFont(cellFont);
>
> decimalCellStyle.setFont(cellFont);
>
> stringCellStyle.setFont(cellFont);
>
> dateCellStyle.setFont(cellFont);
>
> timeCellStyle.setFont(cellFont);
>
> }
>
>
>
>
>
> protected HSSFCell createNewCell(int row, int column) {
>
> HSSFRow sheetRow = null;
>
> if((sheetRow = sheet.getRow(row)) == null) {
>
> sheetRow = sheet.createRow((short)row);
>
> }
>
> HSSFCell cell = sheetRow.createCell((short)column);
>
> return cell;
>
> }
>
>
>
> public void writeString(String string, int row, int column) throws
>IOException{
>
> HSSFCell cell = createNewCell(row, column);
>
> cell.setCellValue(string);
>
> cell.setCellStyle(stringCellStyle);
>
> }
>
>
>
> public void writeTimestamp(java.util.Date date, int row, int
>column) throws IOException{
>
> HSSFCell cell = createNewCell(row, column);
>
> cell.setCellValue(date);
>
> cell.setCellStyle(dateCellStyle);
>
> }
>
>
>
> public void writeNumber(BigDecimal value, int row, int column)
>throws IOException{
>
> HSSFCell cell = createNewCell(row, column);
>
> cell.setCellValue(value.doubleValue());
>
> cell.setCellStyle(currencyCellStyle);
>
> }
>
>}