If it's a format that is in there already, then no, it will not cause
problems.  Now if you did many cell styles, it would blow you up.  You can
even test it by doing the getFormat with a particular format twice.  It
should return the same value both times.  If not, let me know and I'll fix
it.

Shawn

-----Original Message-----
From: Karl-Heinz Zengerle [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, November 15, 2005 11:49 AM
To: POI Users List
Subject: Re: [poi] RE: POI 2.5.1 final: Date value formatting to
'DD.MM.YYYY'

Hi Christian.

Be careful.

If you've a lot of date cells and do workbook.createDataFormat() for any
such cell it'll result in too many data formats. Do it just once and
then refer to it when using a date format.

Regards, Karl-Heinz.


Am Di 15.11.2005 18:32 schrieb Christian Gosch <[EMAIL PROTECTED]>:

> OK, I got this by myself too.
> 
> Although not being very obvious, I found by decompilation that
> "HSSFDataFormat myFormat = workbook.createDataFormat()" and a
> successive
> call to "myFormat.getFormat("DD.MM.YYYY")" creates an appropriate
> format, if
> there is no such one in the workbook. That does the job.
> 
> Regards,
> Christian
> 
> 
> On Tuesday, November 15, 2005 6:21 PM [GMT+1=CET],
> Christian Gosch <[EMAIL PROTECTED]> wrote:
> 
> >> OK, the first step I have got now, and to be honest, I did not tell
> >> the whole truth about my code, because I did not think of the
> >> missing part being of special meaning :-(
> >>
> >> In fact I "reused" _one_ HSSFCellStyle object and tried to give it
> >> another DataFormat any time I use it. But there does not seem to be
> >> any change any more after the first setting...
> >>
> >> Now I prepare 3 HSSFCellStyle objects, one for String, Number and
> >> Date each. And oops, it works -- at least I get something like
> >> "d-mmm-yy" like you say (or "10 Jun. 44" in the example).
> >>
> >>
> >> But now the desired format "DD.MM.YYYY" (for example: "10.04.1944")
> >> is still open, since this is not predefined.
> >>
> >> A sample sheet is attached (I hope it is passed through the
> >> listserv). It was generated using MS Excel2000 deDE on W2KSP4 deDE.
> >>
> >> Regards,
> >> Christian
> >>
> >>
> >> On Tuesday, November 15, 2005 5:45 PM [GMT+1=CET],
> >> Laubach Shawn Contr 327 CSSG/GFSL <[EMAIL PROTECTED]>
> >> wrote:
> >>
> >>> That's add as the data format 15 DEC is really "d-mmm-yy". Would
> >>> it
> >>> be possible to attach an example sheet along with a list of a cell
> >>> or two that has that particular format.
> >>>
> >>> Shawn
> >>>
> >>> -----Original Message-----
> >>> From: Christian Gosch [mailto:[EMAIL PROTECTED]
> >>> Sent: Tuesday, November 15, 2005 10:36 AM
> >>> To: POI Users List
> >>> Subject: POI 2.5.1 final: Date value formatting to 'DD.MM.YYYY'
> >>>
> >>>  Hi,
> >>>
> >>> I cannot successfully format a cell with "DD.MM.YYYY" nor with any
> >>> other date format. All I get is "#.##0" number format for the
> >>> cells.
> >>> How can I achieve "DD.MM.YYYY" formatting?
> >>>
> >>> POI version: 2.5.1 final (this is fairly old, but there does not
> >>> seem to be any newer "final" version :-(   )
> >>>
> >>>
> >>> Code sample:
> >>>
> >>>   // font for rows:
> >>>   HSSFCellStyle borderdFormat = workbook.createCellStyle();
> >>>         // borderdFormat.setBorderTop( HSSFCellStyle.BORDER_HAIR);
> >>> // should be...
> >>>         // borderdFormat.setBorderBottom(
> >>> HSSFCellStyle.BORDER_HAIR); // should be...
> >>> borderdFormat.setBorderTop( HSSFCellStyle.BORDER_DOTTED); //
> >>> ...but is not (!)
> >>> borderdFormat.setBorderBottom( HSSFCellStyle.BORDER_DOTTED);
> >>> // ...but is not (!)
> >>> [...]
> >>>             else if (data instanceof Date) {
> >>>                 // data is of type Date
> >>> log.debug("XLS-DL: Date: xlsZeile = " + xlsZeile + "
> >>> spalte = " + spalte + " value = " + data + " class = " +
> >>>                 data.getClass());
> >>>                 borderdFormat.setDataFormat((short)15);
> >>>                 label.setCellValue( ((Date)data));
> >>>                 label.setCellStyle(borderdFormat); sdata =
> >>>             data.toString(); }
> >>>
> >>> The log.debug(...) output is like:
> >>> XLS-DL: Date: xlsZeile = 1 spalte = 10 value = 1944-04-10
> >>> 01:00:00.0
> >>> class = class java.sql.Timestamp
> >>>
> >>> The resulting cell value display in Excel2000 (deDE in W2KSP4
> >>> deDE)
> >>> is:
> >>>       16.172
> >>>
> >>>
> >>> which would be the result of formatting "10.4.1944" or "Apr. 10,
> >>> 1944" with "#.##0".
> >>>
> >>>
> >>> What am I doing wrong?
> >>>
> >>> regards,
> >>
> >> Gruesse,
> >> --
> >> Dipl.-Inform. Christian Gosch
> >> Systems Development
> >> inovex GmbH
> >> Karlsruher Strasse 71
> >> D-75179 Pforzheim
> >> Tel.: +49 (0)72 31 - 31 91 - 85
> >> Fax: +49 (0)72 31 - 31 91 - 91
> >> mailto:[EMAIL PROTECTED]
> >> http://www.inovex.de
> >>
> >>
> >
> >
> >
> >>
> >> ---------------------------------------------------------------------
> >> 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/
> 
> Gruesse,
> -- 
> Dipl.-Inform. Christian Gosch
> Systems Development
> inovex GmbH
> Karlsruher Strasse 71
> D-75179 Pforzheim
> Tel.: +49 (0)72 31 - 31 91 - 85
> Fax: +49 (0)72 31 - 31 91 - 91
> mailto:[EMAIL PROTECTED]
> http://www.inovex.de
> 
> 
> ---------------------------------------------------------------------
> 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