Format de données POI d'Apache

J'utilise POI d'Apache pour créer des files excel et je veux m'assurer que certaines des cellules sont du type "Numéro".

J'ai essayé les suivantes:

style.setDataFormat(HSSFDataFormat.getBuiltinFormat("0")); cell.setCellValue(Integer.valueOf(value)); cell.setCellStyle(style); 

et

  HSSFDataFormat format = workbook.createDataFormat(); style.setDataFormat(format.getFormat("0")); cell.setCellValue(Integer.valueOf(value)); cell.setCellStyle(style); 

où la valeur est une Chaîne que je souhaite afficher dans la cellule comme Numéro.

Les deux approches fonctionnent. Alors, y a-t-il une différence entre HSSFDataFormat.getBuiltinFormat () et getFormat ()?

Comme vous pouvez le voir dans le code source, la fonction getFormat utilise le buildinFormats d'abord:

 public short getFormat( Ssortingng format ) { ListIterator i; int ind; if (format.toUpperCase().equals("TEXT")) format = "@"; if ( !movedBuiltins ) { i = builtinFormats.listIterator(); while ( i.hasNext() ) { ind = i.nextIndex(); if ( formats.size() < ind + 1 ) { formats.setSize( ind + 1 ); } formats.set( ind, i.next() ); } movedBuiltins = true; } i = formats.listIterator(); while ( i.hasNext() ) { ind = i.nextIndex(); if ( format.equals( i.next() ) ) return (short) ind; } ind = workbook.getFormat( format, true ); if ( formats.size() <= ind ) formats.setSize( ind + 1 ); formats.set( ind, format ); return (short) ind; }