Don't share HSSFFont instances between workbooks.

Kurt Stein wrote:

Just curious - but what is the best practice for sharing an HSSFFont between
java routines - I recreate all the fonts in each routine but this can get a
bit lengthy, not to mention it increases the chances of errors.

Is there a way to inherit all font styles if one passes the workbook
variable? Or should one create these somewhere separate as if they were a
css style sheet and then include them?

Also, I have noticed that sometimes if 2 different styles are created under
the same name, but used in different rows (in the same workbook) created
from different java routines, that the style called firsat overrides the
style created in the local java routine.

I think this is a bug.

Kurt

-----Original Message-----
From: Suchitra Sundararajan [mailto:[EMAIL PROTECTED]
Sent: Friday, March 04, 2005 4:55 AM
To: [email protected]
Cc: [EMAIL PROTECTED]
Subject: RE: Regarding HSSF Formatting issues


Hi , Thanks Amol for the suggestions but I still require further help. Is there any other way other than increasing the JVM size, with respect to destroying the java objects and recreating them in say batches of 1000? I tried creating the File and Workbook objects inside the while loop and even though the file was created in append mode it had only one row, presumably the last row. Even when I am adding data in batches, without recreating the file and workbook objects that is, creating it outside the while loop, the object size keeps growing as, at no point are we destroying the object itself and every time I write the object it is actually overwriting the earlier file. Can you help me with this? I have attached the java file. The above code throws an out of memory exception. What I want is this. / Is there some way in which the object can be set to null and then created again and the file appended. I created the file in append mode but still no avail. / In case I increase the heap size how reliable is it? / What if I have applications having about 40-50 thousand rows. I mean there might be a case wherein even the max heap size might be exceeded?

Can you please provide me info about these?

-----Original Message-----
From: Amol Deshmukh [mailto:[EMAIL PROTECTED]
Sent: Thursday, March 03, 2005 8:33 PM
To: 'POI Users List'
Subject: RE: Regarding HSSF Formatting issues

try increasing JVM heap size (-Xmx 512 etc.) at startup.
~ amol



-----Original Message-----
From: Suchitra Sundararajan [mailto:[EMAIL PROTECTED]
Sent: Thursday, March 03, 2005 10:03 AM
To: POI Users List
Subject: RE: Regarding HSSF Formatting issues


Hi, Further to the suggestions made by all of you, I no longer get the cell style formatting issues. Thanks a lot!! But then the Out of memory error persists , in my particular case when the number of rows are 3998 and the columns are of the order of 60. I checked out that quite a few people have reported such errors in some of the mailing lists. Has a possible work around been got for this case? Is this a bug in this utility?

Regards,
Suchitra

-----Original Message-----
From: Suchitra Sundararajan
Sent: Thursday, March 03, 2005 8:14 PM
To: POI Users List
Subject: RE: Regarding HSSF Formatting issues

Hi,

Thanks a lot for the suggestions. I was earlier (before u guys mailed
out) creating a new cell style for every row. I changed this to create
one instance of the cell style and just keep the setCellStyle method
within the loop but I am still encountering the same problem.

I have attached the piece of code below. Kindly have a look at it and
tell me if I am missing out anything.



HSSFFont font=hsf.createFont();

                 HSSFCellStyle cellStyle= hsf.createCellStyle();

                 font.setColor(HSSFFont.COLOR_NORMAL);

                 font.setItalic(false);

                 font.setFontName("Times New Roman");

                 cellStyle.setFont(font);

                 cellStyle.setAlignment(cellStyle.ALIGN_JUSTIFY);

                 cellStyle.setWrapText(true);



                 while(rs.next())

                 {

                       int iBatchCount=0;



                       HSSFRow row = sheet.createRow((short)RowNum);



                       for(int i=1;i<=rsmd.getColumnCount();i++)

                       {



                             HSSFCell cell =
row.createCell((short)(i-1));

                             cell.setCellStyle(cellStyle);

                             cell.setCellValue(rs.getString(i));

                       }

                       RowNum++;

                       iBatchCount++;

                       System.out.println("Row num is " + RowNum);

                       if(iBatchCount==1000)

                       {

                             hsf.write(fout);

                             iBatchCount=0;



                       }

                 }

                 hsf.write(fout);



Thanks and Regards,

Suchitra.



-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Thursday, March 03, 2005 8:05 PM
To: [email protected]
Subject: RE: Regarding HSSF Formatting issues





Are you creating a new HSSFStyle for each cell or using a
single shared

style for all cells?



Regards,

Frans







-----Original Message-----


From: Suchitra Sundararajan [mailto:[EMAIL PROTECTED]


Sent: Thursday, March 03, 2005 3:24 PM


To: POI Users List


Subject: Regarding HSSF Formatting issues


Hi,


I have used the HSSF class to write the results of my select


query into


an excel sheet. I noticed that even if there were just 2 columns and


about 1000 rows, there are some formatting issues. My data


is supposed



to be in TimesNewRoman size 10 but beyond some rows, in this


case around


506 itself the format changes to Arial 10 and it reports Some text


formatting might have changed because the maximum number of


fonts has



been exceeded. I have attached the screen shot of the


error. The data



seems to be fine but the format has changed


Also once this error has been encountered, the next time i run the


program without closing the java file (i was running it


from Textpad)



even if the selected rows are only 10 the same formatting


error comes



up.


Also when the number of rows are very huge, about 10000 or


so it gives



me a run time exception of out of memory exception. I thought


initially


this was because I was writing to the file at the end of


all the rows.



So I started writing for every row into the sheet but that made the


whole process too slow. It was taking several minutes. So I started


writing to the excel sheets in batches of 1000 but even


that threw an



Out of bound exception. Is this a reported bug in the feature? Am I


missing out some very important thing here? Is there some


clearing of



the workbook object that I should do?


Thanks and Regards,


Suchitra


---------------------------------------------------------------------



To unsubscribe, e-mail: [EMAIL PROTECTED]


Mailing List: http://jakarta.apache.org/site/mail2.html#poi


The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/





-----------------------------------------------------------------

ATTENTION:

The information in this electronic mail message is private and

confidential, and only intended for the addressee. Should you

receive this message by mistake, you are hereby notified that

any disclosure, reproduction, distribution or use of this

message is strictly prohibited. Please inform the sender by

reply transmission and delete the message without copying or

opening it.



Messages and attachments are scanned for all viruses known.

If this message contains password-protected attachments, the

files have NOT been scanned for viruses by the ING mail domain.

Always scan attachments before opening them.

-----------------------------------------------------------------





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] Mailing List: http://jakarta.apache.org/site/mail2.html#poi The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/
.





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/



Reply via email to