【问题标题】:java.lang.NumberFormatException: For input string: " " [duplicate]java.lang.NumberFormatException:对于输入字符串:“” [重复]
【发布时间】:2017-09-02 11:33:56
【问题描述】:

您好,我正在尝试将 excel 工作表数据保存到 MySQL 数据库中。 为此,我正在使用 Apache Poi。我在 Apache Poi 中使用 DataFormatter 获取单元格值。我以字符串格式成功获取单元格值,但我试图将字符串值更改为 Long 我得到 NumberFormatException。我正在尝试下面的代码。请尝试解决我的问题。

谢谢。

   FileInputStream inputStream = new FileInputStream(filename);
   XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
    XSSFSheet firstSheet = workbook.getSheetAt(0);
    DataFormatter formatter = new DataFormatter();
    for(int z=0;z<firstSheet.getLastRowNum();z++)
    {
    Cell upccell=firstSheet.getRow(z).getCell(0);
    String upcstring =formatter.formatCellValue(upccell);
    long upc=Long.valueOf(upcstring);
    .
    .
    .
    }

这是控制台中的错误堆栈跟踪。

java.lang.NumberFormatException: For input string: "upc"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at java.lang.Long.<init>(Unknown Source)

【问题讨论】:

  • upc 不是要转换的数字
  • 你希望得到哪个数字?
  • 我们看不到您的数据。您希望我们如何提供帮助?
  • 假设您的第一行是标题,您可能必须开始 int z = 1,而不是 0。

标签: java apache-poi


【解决方案1】:

我认为这段代码返回的所有单元格值都不是数值。

单元格 upccell = firstSheet.getRow(z).getCell(0);

所以你必须确保你正在阅读的任何单元格都应该包含数值。

【讨论】:

    猜你喜欢
    • 2013-09-16
    • 2020-03-11
    • 2015-04-19
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 2013-09-04
    • 1970-01-01
    相关资源
    最近更新 更多