从excel文件中读取数字 - Java - Swing

时间:2016-02-09 15:02:48

标签: java swing apache-poi

我创建了一个工具,我可以上传并从excel文件中获取一些数字

onCreate();

并使用以下命令将此值粘贴到其他工具

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference

excel文件中的所有值都是数字。 有时我得到十进制数字(如2.02)。

因为我无法更改excel文件,所以可以告诉我的应用忽略.02并仅保留2个例子吗?

4 个答案:

答案 0 :(得分:1)

如果Excel文件具有为您尝试读取的单元格设置的正确格式,则可以尝试应用该格式,从而获得与Excel显示的格式相同的值。

参见例如以下示例来自http://poi.apache.org/spreadsheet/eval.html

的文档
alert(JSON.stringify(data_array))

答案 1 :(得分:0)

你有没有尝试过Math.round()?或者一个新的BigDecimal(cell3.getContents())。setScale(1)?(如果你想保留第一个数字)

答案 2 :(得分:0)

感谢您的帮助。

最后我用下面的方法解决了我的问题:

 Cell cell4 = sheet.getCell(3, 7);
          String number3 = cell4.getContents().split("\\.")[0].replaceAll("\\,","");         
          System.out.println(number3);

答案 3 :(得分:0)

import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.math.BigDecimal;

Row currentRow = rowIterator.next();
currentRow.getCell(4).setCellType(XSSFCell.CELL_TYPE_NUMERIC);
Double doubleValue = currentRow.getCell(4).getNumericCellValue();
BigDecimal bd = new BigDecimal(doubleValue.toString());
long lonVal = bd.longValue();
String actualNumber = Long.toString(lonVal).trim();