java 中 读取 excel 数字,长的数字带逗号不能被 bigdecimal 读取
时间: 2024-10-12 16:11:29 浏览: 59
在Java中,如果你尝试使用`BigDecimal`直接从Excel文件读取含有逗号的长数字,因为逗号在Java数字表示法中用于分隔千位,这可能会导致解析错误。`BigDecimal`设计上并不是为了处理包含千位分隔符的数据。
解决这个问题,你可以采取以下步骤:
1. 使用特定于Excel的库,如Apache POI,它提供了一种方式可以读取并正确处理Excel的数值。例如,你可以先读取成字符串,然后手动去掉逗号再转换成`BigDecimal`:
```java
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Cell;
Cell cell = ...; // 获取到的Excel单元格
RichTextString text = cell.getRichStringCellValue();
String value = text.getString().replaceAll(",", "");
BigDecimal bdValue = new BigDecimal(value);
```
2. 如果你不想引入新的库,可以使用`double`临时存储这个值,然后再转换到`BigDecimal`,因为`double`可以接受包含逗号的数值:
```java
double doubleValue = cell.getNumericCellValue();
BigDecimal bdValue = new BigDecimal(doubleValue);
```
阅读全文