Apache POI获得NPE读取xls文件

Ynewbie

我正在尝试将XLS文件读入Java,看起来像这样

列A |产品ID |销售数量
................. | 105029 .... | 15
................ | 102930 .... | 9
................. | 203911 .... | 29
................。 | 105029 .... | 4

在这里,我需要为每个产品ID总计出售的产品总数,然后使用已排序的数据创建一个新文件。该程序应该是灵活的,因为可能有1000个不同的产品ID或400。下面的代码是到目前为止我所拥有的...但是它有很多问题,而我缺乏Java知识使它成为现实真令人沮丧。

第一个for循环不会继续,它停留在r = 1,尽管第二个for循环会继续。

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class Read {

            public static void readXLSFile() throws IOException{
           InputStream ExcelFile = new FileInputStream("C:/Sales Data.xls");
                HSSFWorkbook wb = new HSSFWorkbook(ExcelFile);
                HSSFSheet sheet=wb.getSheetAt(0);

                int numRows = sheet.getPhysicalNumberOfRows(); 
                //to intialize an array
                int[]idAccum = new int[numRows]; 
                //holds the product id
                int[]saleAccum = new int[numRows]; 
                //holds the total sales per product ID

                        for(int r=1;r<=numRows;r++){ 
                        //iterates through the product ID and matching sales
                            for(int j=r+1;j<numRows+1; j++){
                            HSSFCell rows = sheet.getRow(r).getCell(1);
                            HSSFCell cells = sheet.getRow(r).getCell(2);
                            HSSFCell rows1 = sheet.getRow(j).getCell(1);
                            HSSFCell cells1 = sheet.getRow(j).getCell(2);
                                if(rows==rows1){ 
                            //compares product ids
                                    idAccum[r]=rows1.getNumericCellValue(); 
                        //places product id in element r if rows and rows1 match
                                    saleAccum[r]+=cells.getNumericCellValue(); 
                        //adds number of items sold to corresponding product ID
                                }
                            }
                            System.out.println(idAccum[r]); 
                            System.out.println(saleAccum[r]);
                        }   
            }

            public static void main(String[] args) throws IOException {
        readXLSFile();

            }
}

但是我得到了nullpointexceptions。


Read.main(Read.java:45)
处Read.readXLSFile(Read.java:29)处的线程“ main”中的java.lang.NullPointerException异常
Java结果:1

洛吉克

您遇到了一个错误:r上升到numRowsj开始于r + 1–在上一次迭代中为numRows + 1由于该行中没有内容,getCell(…)因此将返回该行null(按照API定义)。这是来自哪里NullPointerException

改变

for(int r=1;r<=numRows;r++){

for(int r=1;r<numRows;r++){

摆脱错误。防御性编程(即检查getCell(…)结果)null也是个好主意。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Apache POI读取xlsx NPE

来自分类Dev

Apache Poi更新XLS文件

来自分类Dev

是否可以使用Apache POI读取.xls和.xlsx文件?

来自分类Dev

如何通过Apache POI 3.9从xls / xlsx读取时间格式?

来自分类Dev

读取xlsx文件行时的Apache POI ClassCastException

来自分类Dev

使用Apache POI读取.docx文件

来自分类Dev

读取xlsx文件行时的Apache POI ClassCastException

来自分类Dev

无法使用Apache POI从Excel文件读取

来自分类Dev

写入XLS文件时出错-Apache POI多线程

来自分类Dev

通过apache poi读取excel文件(在classpath中)

来自分类Dev

通过apache poi读取excel文件(在classpath中)

来自分类Dev

使用Java Apache POI从只读xlsm文件读取数据

来自分类Dev

使用Apache POI API从Excel文件中读取值

来自分类Dev

尝试使用POI Apache库读取Excel文件

来自分类Dev

使用Apache POI读取/写入不同的Microsoft Office文件格式

来自分类Dev

如何使用 Apache POI 读取 MS excel 文件?

来自分类Dev

从 Apache poi java 读取 Excel

来自分类Dev

Apache POI XLS:在顶部添加新行

来自分类Dev

使用Apache POI打开xls和xlsx

来自分类Dev

Apache poi 文件已损坏

来自分类Dev

如何从Apache POI获得脚注和段落?

来自分类Dev

使用 Apache POI 写入 xlsx 文件,在文件的最后一列中获得预期的答案

来自分类Dev

如何使用Apache POI读取特定行?

来自分类Dev

如何在apache POI中读取Excel文件的确切单元格内容

来自分类Dev

使用Java Apache POI 3.9 Eclipse从Excel文件.xlsx中读取

来自分类Dev

Java Apache POI读取Word(.doc)文件并获取使用的命名CHARACTER样式

来自分类Dev

如何在apache POI中读取Excel文件的确切单元格内容

来自分类Dev

使用Apache POI在Java中读取/写入Excel文件时出现问题

来自分类Dev

NumberFormatException:对于输入字符串:尝试使用 apache poi 读取 excel 文件时的“null”

Related 相关文章

  1. 1

    Apache POI读取xlsx NPE

  2. 2

    Apache Poi更新XLS文件

  3. 3

    是否可以使用Apache POI读取.xls和.xlsx文件?

  4. 4

    如何通过Apache POI 3.9从xls / xlsx读取时间格式?

  5. 5

    读取xlsx文件行时的Apache POI ClassCastException

  6. 6

    使用Apache POI读取.docx文件

  7. 7

    读取xlsx文件行时的Apache POI ClassCastException

  8. 8

    无法使用Apache POI从Excel文件读取

  9. 9

    写入XLS文件时出错-Apache POI多线程

  10. 10

    通过apache poi读取excel文件(在classpath中)

  11. 11

    通过apache poi读取excel文件(在classpath中)

  12. 12

    使用Java Apache POI从只读xlsm文件读取数据

  13. 13

    使用Apache POI API从Excel文件中读取值

  14. 14

    尝试使用POI Apache库读取Excel文件

  15. 15

    使用Apache POI读取/写入不同的Microsoft Office文件格式

  16. 16

    如何使用 Apache POI 读取 MS excel 文件?

  17. 17

    从 Apache poi java 读取 Excel

  18. 18

    Apache POI XLS:在顶部添加新行

  19. 19

    使用Apache POI打开xls和xlsx

  20. 20

    Apache poi 文件已损坏

  21. 21

    如何从Apache POI获得脚注和段落?

  22. 22

    使用 Apache POI 写入 xlsx 文件,在文件的最后一列中获得预期的答案

  23. 23

    如何使用Apache POI读取特定行?

  24. 24

    如何在apache POI中读取Excel文件的确切单元格内容

  25. 25

    使用Java Apache POI 3.9 Eclipse从Excel文件.xlsx中读取

  26. 26

    Java Apache POI读取Word(.doc)文件并获取使用的命名CHARACTER样式

  27. 27

    如何在apache POI中读取Excel文件的确切单元格内容

  28. 28

    使用Apache POI在Java中读取/写入Excel文件时出现问题

  29. 29

    NumberFormatException:对于输入字符串:尝试使用 apache poi 读取 excel 文件时的“null”

热门标签

归档