poi-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michele Nardelli" <m.narde...@nikasistemi.com>
Subject R: Exporting in Excel is too slow
Date Mon, 17 Sep 2007 07:48:55 GMT
It works perfectly, it's superfast now!

Thanks a lot for your help

-----Messaggio originale-----
Da: Yegor Kozlov [mailto:yegor@dinom.ru] 
Inviato: lunedì 17 settembre 2007 9.34
A: POI Users List
Oggetto: Re: Exporting in Excel is too slow

sheet.autoSizeColumn((short)col) is an expensive operation.
You should call it after the sheet is created. That is, after you
create all the cells insert the following line:

for(short col=0; col<columnCount; col++) sheet.autoSizeColumn(col);

Regards,
Yegor

> I have got a problem when I try to write an Excel file using the POI framework.
> I fetch the data from a Jtable. It's really slow, if the jtable has
> around 100 records, the process takes around 5 seconds but if the
> jtable has around 2000 record takes around 3 hours! Please see the
> code below the way I use POI in order to write the excel file, maybe there is somethings
wrong.

> code

> private HSSFCell createHSSFCell(HSSFSheet sheet, Object value, int row, int col) {
>       // create row if not yet created
>       HSSFRow hssfRow = sheet.getRow(row);
>       hssfRow = (hssfRow == null) ? sheet.createRow(row) : hssfRow;
>       HSSFCell cell = null;
>       try {
>               // create cell if not yet created
>            cell = hssfRow.getCell((short) col);
>           cell = (cell == null) ? hssfRow.createCell((short) col) : cell;
>           sheet.autoSizeColumn((short)col);  
>       }catch(Exception e){
>               
>       
>       }
>      

>      
>       
>       // HSSFCellStyle cellStyle = wb.createCellStyle();
>      
> cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("dd/mm/yyyy"));
>       cell.setCellStyle(cellStyle);
>       
>       // set the cell value
>       Object cellValue;
>       if (types[col].equalsIgnoreCase("NUMERIC")){
>               cellValue =
> Double.parseDouble(value.toString().replaceAll(" ", ""));
>               cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
>               cell.setCellValue((Double) cellValue);
>       }else
>           if (types[col].equalsIgnoreCase("NUMERICINT")){
>               cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
>               cellValue =
> Integer.parseInt(value.toString().replaceAll(" ", "").substring(0,
> value.toString().replaceAll(" ", "").lastIndexOf(".")));
>               cell.setCellValue((Integer) cellValue);
>           }else
>               if (types[col].equalsIgnoreCase("DATE")){
>                   if (value.toString().replaceAll(" ", "").length()==8)
>                       cellValue =
> DateUtils.formatDate(value.toString().replaceAll(" ", ""));
>                   else
>                       cellValue = "";
>                   cell.setCellValue((String)cellValue);
>                   
>               }else
>                   if (types[col].equalsIgnoreCase("TIME")){
>                       if ((value.toString().replaceAll(" ",
> "").length()>=4)&&(value.toString().replaceAll(" ", "").length()<=6))
>                           cellValue =
> DateUtils.formatTime(value.toString().replaceAll(" ", ""));         
>                       else
>                           cellValue = "";
>                       cell.setCellValue((String)cellValue);        
>                   }else{
>                       cell.setCellType(HSSFCell.CELL_TYPE_STRING);
>                       cellValue = (value == null) ? "" : value.toString();
>                       cell.setCellValue((String)cellValue);
>                   }
>       
>       
>       return cell;

> Thanks to eveybody, I really appreciate your help!
> Regards,


> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
> For additional commands, e-mail: user-help@poi.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
For additional commands, e-mail: user-help@poi.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
For additional commands, e-mail: user-help@poi.apache.org


Mime
View raw message