Формат числа с разделителем тысяч в Excel с использованием Apache POI
Я хочу, чтобы отформатировать число клеток, с запятой в качестве разделителя тысяч. Например:
12 -> 12
1200 -> 1,200
12000 -> 12,000
12000000 -> 12,000,000
120000000 -> 120,000,000
у меня есть следующий код. Что я должен использовать как formatStr
? Есть ли простой способ? Или мне нужно определить количество нулей, чтобы произвести что-то вроде этого #,###,###
?
String formatStr = "";
HSSFCellStyle style = workbook.createCellStyle();
HSSFDataFormat format = workbook.createDataFormat();
style.setDataFormat(format.getFormat(formatStr));
cell.setCellStyle(style);
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
имейте в виду, что я имею дело с цифрами. Тип ячейки будет числовым, а не строковым.
обновление
2 ответов
просто #,###
или #,##0
должно быть достаточно. Excel интерпретирует это как наличие тысяч разделителей каждые три цифры (не только перед последними тремя, что я предполагаю, что вы ожидали).
в духе обучения человека рыбачить, вот как вы можете узнать для себя:
формат как число, 0 десятичных знаков, с 1000 разделителем:
нажмите OK, затем снова откройте диалоговое окно формат чисел и перейти к Custom. Посмотрите на код форматирования ("тип"). Тут написано #,##0
, что для меня дает тот же результат, что и #,###
.
просто добавить это:
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));
и он будет следовать формат, который вы хотите.Вы можете обратиться этой ссылке чтобы получить больше настроек формата.