我创建了一个工具,我可以上传并从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个例子吗?
答案 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();