mirror of https://github.com/alibaba/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.0 KiB
63 lines
2.0 KiB
package com.alibaba.excel.util; |
|
|
|
import java.math.BigDecimal; |
|
import java.util.Locale; |
|
|
|
import com.alibaba.excel.metadata.GlobalConfiguration; |
|
import com.alibaba.excel.metadata.format.DataFormatter; |
|
|
|
/** |
|
* Convert number data, including date. |
|
* |
|
* @author Jiaju Zhuang |
|
**/ |
|
public class NumberDataFormatterUtils { |
|
|
|
/** |
|
* Cache DataFormatter. |
|
*/ |
|
private static final ThreadLocal<DataFormatter> DATA_FORMATTER_THREAD_LOCAL = new ThreadLocal<DataFormatter>(); |
|
|
|
/** |
|
* Format number data. |
|
* |
|
* @param data |
|
* @param dataFormat Not null. |
|
* @param dataFormatString |
|
* @param globalConfiguration |
|
* @return |
|
*/ |
|
public static String format(BigDecimal data, Short dataFormat, String dataFormatString, |
|
GlobalConfiguration globalConfiguration) { |
|
if (globalConfiguration == null) { |
|
return format(data, dataFormat, dataFormatString, null, null, null); |
|
} |
|
return format(data, dataFormat, dataFormatString, globalConfiguration.getUse1904windowing(), |
|
globalConfiguration.getLocale(), globalConfiguration.getUseScientificFormat()); |
|
} |
|
|
|
/** |
|
* Format number data. |
|
* |
|
* @param data |
|
* @param dataFormat Not null. |
|
* @param dataFormatString |
|
* @param use1904windowing |
|
* @param locale |
|
* @param useScientificFormat |
|
* @return |
|
*/ |
|
public static String format(BigDecimal data, Short dataFormat, String dataFormatString, Boolean use1904windowing, |
|
Locale locale, Boolean useScientificFormat) { |
|
DataFormatter dataFormatter = DATA_FORMATTER_THREAD_LOCAL.get(); |
|
if (dataFormatter == null) { |
|
dataFormatter = new DataFormatter(use1904windowing, locale, useScientificFormat); |
|
DATA_FORMATTER_THREAD_LOCAL.set(dataFormatter); |
|
} |
|
return dataFormatter.format(data, dataFormat, dataFormatString); |
|
} |
|
|
|
public static void removeThreadLocalCache() { |
|
DATA_FORMATTER_THREAD_LOCAL.remove(); |
|
} |
|
}
|
|
|