para - java apache poi documentation
Formato de moneda de Excel básico con Apache POI (4)
Después de buscar un poco más en la documentación, encontré la respuesta:
http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFDataFormat.html
Solo necesita encontrar un formato preestablecido apropiado y suministrar el código.
styleCurrencyFormat.setDataFormat((short)8); //8 = "($#,##0.00_);[Red]($#,##0.00)"
Aquí hay más ejemplos: http://www.roseindia.net/java/poi/setDataFormat.shtml
Puedo hacer que las celdas se formateen como fechas, pero no he podido obtener celdas para formatear como moneda ... ¿Alguien tiene un ejemplo de cómo crear un estilo para que funcione? Mi código a continuación muestra los estilos que estoy creando ... styleDateFormat funciona como un champ, mientras que styleCurrencyFormat no tiene efecto en la celda.
private HSSFWorkbook wb;
private HSSFCellStyle styleDateFormat = null;
private HSSFCellStyle styleCurrencyFormat = null;
......
public CouponicsReportBean(){
wb = new HSSFWorkbook();
InitializeFonts();
}
public void InitializeFonts()
{
styleDateFormat = wb.createCellStyle();
styleDateFormat.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
styleCurrencyFormat = wb.createCellStyle();
styleCurrencyFormat.setDataFormat(HSSFDataFormat.getBuiltinFormat("$#,##0.00"));
}
Solo una actualización a la respuesta anterior. el ''8'' corto no funciona para mí, pero el ''7'' sí.
cell.setCellValue(416.17);
cellStyle.setDataFormat((short)7);
cell.setCellStyle(cellStyle);
O / P es $ 416.00
Para al menos Excel 2010: vaya a Excel. Formatee una celda de la forma que desee.
Luego regrese al diálogo de formato. Seleccione personalizado
Copie y pegue el texto que tiene en la fila superior debajo de Tipo: en
createHelper.createDataFormat().getFormat("<here>");
Ejemplo:
createHelper.createDataFormat().getFormat("_($* #,##0.00_);_($* (#,##0.00);_($* /"-/"??_);_(@_)"); //is the "Accounting" format.
Asegúrate de configurar tu populate tus celdas usando un doble. Usar el índice puede causar problemas con diferentes versiones de Excel. Tenga en cuenta que el nuevo formato que crea arriba termina en el diálogo personalizado del paso dos.
Puede probar este código para formatear su celda con el modo de moneda (con el separador de Thowsand como se usa en Brasil o Alemania, por ejemplo, 12.345,67):
HSSFCellStyle cell = yourWorkBook.createCellStyle();
CreationHelper ch = yourWorkBook.getCreationHelper();
cell.setDataFormat(ch.createDataFormat().getFormat("#,##0.00;//-#,##0.00"));