I remember that someone allready exposed this problem in the list. I'm not
sure but I think that a method to compare 2 styles have been coded
somewhere.
Take a look at the mailing list archive.

Pierre

Cordialement,
Pierre Lavignotte
Ingénieur Conception & Développement
http://pierre.lavignotte.googlepages.com


On Thu, Dec 18, 2008 at 5:39 PM, Anthony Andrews <[email protected]>wrote:

> Take a look at the HSSFWorkbook class, and you will see two methods;
> getNumCellStyles() and getCellStyleAt(int index). Call the first to find out
> how many cell styles the Workbook contains then use a for loop to simply
> iterate through, calling the getCellStyleAt() method for each. Obviously,
> you will need to store the objects away someweher - an array, ArrayList,
> etc.
>
> You will still face one problem however. As far as I am aware, the equals()
> method has not be over-ridden for the HSSFCellStyle class. Therefore, you
> will have to devise some way to determine whether two cell styles are the
> same.
>
> --- On Thu, 12/18/08, Hoppe, Sascha <[email protected]> wrote:
> From: Hoppe, Sascha <[email protected]>
> Subject: How to reuse cell styles?
> To: [email protected]
> Date: Thursday, December 18, 2008, 6:04 AM
>
> Hi all,
>
> usually I create cell styles for e.g. date cells this way:
>
> HSSFCellStyle dateTimeStyle = workbook.createCellStyle();
> dateTimeStyle.setDataFormat(format.getFormat("h:mm:ss"));
> dateTimeStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
> cell.setCellStyle(dateTimeStyle);
>
> If you do this for a large number of cells and you create a new instance of
> HSSFCellStyle all the time,
> you will run into a "too many data formats" or something similar when
> you open the .xls. file.
> So usually I would use a cache-mechanism for the cell styles to reuse them
> and
> everything will be fine.
>
> But what if a write the workbook to disk and later reopen it. I have a new
> instance of HSSFWorkbook now and would
> like to append rows/cells to it. Of course I would like to reuse the cell
> styles that are already in the workbook. But I could not find a way to
> access
> them. HSSFDataFormat.getFormat(String format) won't do, because POI saves
> new DataFormats via index. How can my program "remember" how the
> Styles where stored in the spreadsheet to reuse them on reopening and
> appending?
>
> thanks for any clues.
>
>
> --------------------------------------------------------------
> Diese E-Mail kann vertrauliche und/oder rechtlich geschützte
> Informationen enthalten. Wenn Sie nicht der richtige Adressat sind
> oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte
> sofort den Absender und vernichten Sie diese Mail. Das unerlaubte
> Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet.
>
> This e-mail may contain confidential and/or privileged information. If
> you are not the intended recipient (or have received this e-mail in
> error) please notify the sender immediately and destroy this e-mail.
> Any unauthorized copying, disclosure or distribution of the material
> in this e-mail is strictly forbidden.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
>
>
>

Reply via email to