On some sheets, DataFormatter instantiates a large number of DecimalFormat
See expended time in trace below:
100.0% - 605 ms io.keikai.range.impl.RangeImpl.getCellFormatText
99.0% - 599 ms io.keikai.model.util.ReadWriteTask.doInReadLock
99.0% - 599 ms io.keikai.range.impl.RangeImpl$CellVisitorTask.invoke
99.0% - 599 ms io.keikai.range.impl.RangeImpl.travelCells
99.0% - 599 ms io.keikai.range.impl.RangeImpl$40.visit
98.1% - 594 ms io.keikai.model.impl.sys.FormatEngineImpl.format
91.5% - 554 ms io.keikai.model.impl.sys.FormatEngineImpl.format0
84.1% - 509 ms org.zkoss.poi.ss.usermodel.DataFormatter.getJavaFormat
54.7% - 331 ms org.zkoss.poi.ss.usermodel.DataFormatter.<init>
54.7% - 331 ms org.zkoss.poi.ss.usermodel.DataFormatter.<init>
52.8% - 320 ms java.text.DecimalFormat.<init>
Since instantiating DecimalFormat is expensive, it would be better to reuse instances if possible.