Формат числа с разделителем тысяч в 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);

имейте в виду, что я имею дело с цифрами. Тип ячейки будет числовым, а не строковым.

обновление

enter image description here

2 ответов


просто #,### или #,##0 должно быть достаточно. Excel интерпретирует это как наличие тысяч разделителей каждые три цифры (не только перед последними тремя, что я предполагаю, что вы ожидали).

enter image description here

в духе обучения человека рыбачить, вот как вы можете узнать для себя:

формат как число, 0 десятичных знаков, с 1000 разделителем:

enter image description here

нажмите OK, затем снова откройте диалоговое окно формат чисел и перейти к Custom. Посмотрите на код форматирования ("тип"). Тут написано #,##0, что для меня дает тот же результат, что и #,###.

enter image description here


просто добавить это:

style.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));

и он будет следовать формат, который вы хотите.Вы можете обратиться этой ссылке чтобы получить больше настроек формата.