apache-poi-如何像Excel一样在细胞编辑器中进行整数数字



我使用apache-poi" xssf和sax event api"来导入excel-files。

与apache-poi一起解析原始价值,并想问,我该如何将这些原始值完全绕,就像Excel-GUI对单元编辑器所做的那样。以下示例说明了问题:

Raw:      1.9210999999999999E-2     (value is stored like this in xlsx-file)
Edit:     1.9211%                   (user sees this value in excel cell-editor)
View:     1.92%                     (user sees this value in excel grid-overview)
Format:   0.00%                     (the cell-style)

Excel如何读取编辑值的原始值?Excel如何知道它需要在十进制分离器之后到达4位数的一部分。Apache POI如何帮助我这样做,因此我也可以在我的Excel-Import中使用编辑值(而不是视图值(?

我看到了类似的票,涵盖了它的表现如何:即使它们不精确,excel如何成功地绕过浮数?

在我想问的这张票中,Apache Poi如何帮助我,因此我不需要在这里重新发明轮子,并实施Excecrels算法。

excel根据IEEE 754规格获得双重值,然后在显示在表格中之前将其回合为15个重要数字。

可以根据15位数字精度的MathContext设置使用BigDecimal found。

import java.math.BigDecimal;
import java.math.MathContext;
class ReadLongNumbersAsExcel {
 public static void main(String[] args) throws Exception{
  String v = "1.921099999999999E-2";
  double d = Double.parseDouble(v);
  System.out.println("raw: " + v);
  System.out.println("double: " + d);
  BigDecimal bd = new BigDecimal(d);
  v = bd.round(new MathContext(15)).toPlainString();
  System.out.println("like Excel: " + v);
 }
}

%情况是一种特殊情况,因为在这种情况下Excel显示的不是真正存储的值,但显示该值乘以100,然后是"%"。因此,如果您想要同样的事情,那就做同样的事情。在使原始值四舍五入为15个有效数字后,确实会乘以100并附加"%"。

但是,如果需求仅像Excel中的格式值一样,请查看字符串中的一个数字包含日期和指数数字,而使用Java中的Apache Excel文件解析Excel文件时>

相关内容

  • 没有找到相关文章

最新更新