glens       02/05/02 17:42:58

  Modified:    src/documentation/xdocs faq.xml
  Log:
  New FAQ.
  
  Revision  Changes    Path
  1.9       +68 -0     jakarta-poi/src/documentation/xdocs/faq.xml
  
  Index: faq.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-poi/src/documentation/xdocs/faq.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- faq.xml   22 Apr 2002 07:14:02 -0000      1.8
  +++ faq.xml   3 May 2002 00:42:58 -0000       1.9
  @@ -42,4 +42,72 @@
               at this feel free to add it as a plugin module.  We wont be hosting it 
here however.
           </answer>
       </faq>
  +    <faq>
  +        <question>
  +            How do you tell if a field contains a date with HSSF?
  +        </question>
  +        <answer>
  +            Excel stores dates as numbers therefore the only way to determine if a 
cell is
  +            actually stored as a date is to look at the formatting. This solution 
from
  +            Jason Hoffman:
  +            <p>
  +            Okay, here is a little code I used to determine if the cell was a 
number or
  +            date, and then format appropriately.  I hope it helps.  I keep meaning 
to
  +            submit a patch with the helper method below.... but just haven't had a
  +            chance.
  +            </p>
  +            <source>
  +/////// code snippet ////////////
  +case HSSFCell.CELL_TYPE_NUMERIC:
  +                  double d = cell.getNumericCellValue();
  +                  // test if a date!
  +                  if (isCellDateFormatted(cell)) {
  +                    // format in form of M/D/YY
  +                    cal.setTime(HSSFDateUtil.getJavaDate(d));
  +                    cellText =
  +                      (String.valueOf(cal.get(Calendar.YEAR))).substring(2);
  +                    cellText = cal.get(Calendar.MONTH)+1 + "/" +
  +                               cal.get(Calendar.DAY_OF_MONTH) + "/" +
  +                               cellText;
  +                  }
  +/////// end code snippet ////////////
  +
  +// HELPER METHOD BELOW TO DETERMINE IF DATE
  +
  +// method to determine if the cell is a date, versus a number...
  +public static boolean isCellDateFormatted(HSSFCell cell) {
  +    boolean bDate = false;
  +
  +    double d = cell.getNumericCellValue();
  +    if ( HSSFDateUtil.isValidExcelDate(d) ) {
  +      HSSFCellStyle style = cell.getCellStyle();
  +      int i = style.getDataFormat();
  +      switch(i) {
  +        // Internal Date Formats as described on page 427 in
  +        // Microsoft Excel Dev's Kit...
  +        case 0x0e:
  +        case 0x0f:
  +        case 0x10:
  +        case 0x11:
  +        case 0x12:
  +        case 0x13:
  +        case 0x14:
  +        case 0x15:
  +        case 0x16:
  +        case 0x2d:
  +        case 0x2e:
  +        case 0x2f:
  +         bDate = true;
  +        break;
  +
  +        default:
  +         bDate = false;
  +        break;
  +      }
  +    }
  +    return bDate;
  +  }
  +            </source>
  +        </answer>
  +    </faq>
   </faqs>
  
  
  


Reply via email to