Почему poi ОТКАЗЫВАЕТСЯ от поддержки опции FIRST в формате Excel, мне не подходит! ![enter image description here](https://i.stack.imgur.com/OrlzU.png)
Мне не нравится использовать DecimalFormat для валюты, потому что значение конечной ячейки становится нецифровым с введением символа валюты. Во время работы в крупном финансовом учреждении мне было поручено решить эту проблему с форматированием. Основная идея этого изменения заключается в том, что POI отказывается быть разумным и иметь всестороннюю поддержку нативных опций Excel, я буду проникать в их код и менять их значения в ядре. Ниже приведен мой обходной путь:
private static final String CURRENCY_FORMAT_OVERRIDE = "\"$\"#,##0.00_);-\"$\"#,##0.00";
private static final String CURRENCY_FORMAT_TARGET = "\"$\"#,##0.00_);(\"$\"#,##0.00)";
static { // static class level initializer
Field field = org.apache.poi.ss.usermodel.BuiltinFormats.class.getDeclaredField("_formats");
field.setAccessible(true);
String[] _formats = (String[])field.get(new org.apache.poi.ss.usermodel.BuiltinFormats());
for(int i = 0; i < _formats.length; ++i) {
if(_formats[i].equals(CURRENCY_FORMAT_TARGET)) {
_formats[i]=CURRENCY_FORMAT_OVERRIDE;
System.out.println("TAKE THAT, POI!!!");
}
}
}