Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ApachePOI和java中使用rowiterator?_Java_Row_Apache Poi_Hssf - Fatal编程技术网

如何在ApachePOI和java中使用rowiterator?

如何在ApachePOI和java中使用rowiterator?,java,row,apache-poi,hssf,Java,Row,Apache Poi,Hssf,我试图在java中使用ApachePOI读取excel文件,但是Eclipse没有编译代码 public class ReadExcel { public static void main(String[] args) throws IOException { FileInputStream file = new FileInputStream(new File("C:\\Users\\XXXXXXXXXXXXXXXXal\\042012.xls"));

我试图在java中使用ApachePOI读取excel文件,但是Eclipse没有编译代码

public class ReadExcel {

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

        FileInputStream file = new FileInputStream(new File("C:\\Users\\XXXXXXXXXXXXXXXXal\\042012.xls"));
        HSSFWorkbook wb = new HSSFWorkbook(file);
        HSSFSheet sheet = wb.getSheetAt(0);
        Iterator<Row> rowIterator = sheet.iterator();

        while (rowIterator.hasNext()) {

        Row row = rowIterator().next();      \\ THIS LINE GETS UNDERLINED BY ECLIPSE!!!
         Iterator<Cell> cellIterator = row.cellIterator();
            while(cellIterator.hasNext()) {

                Cell cell = cellIterator.next();

                        System.out.print(cell.getStringCellValue() + "\t\t");

                            }

        }
        file.close();
        FileOutputStream out =
            new FileOutputStream(new File("C:\\test.xls"));
        wb.write(out);
        out.close();
        }


    }
public类ReadExcel{
公共静态void main(字符串[]args)引发IOException{
FileInputStream文件=新的FileInputStream(新文件(“C:\\Users\\XXXXXXXXXXXXXX AL\\042012.xls”);
HSSF工作簿wb=新的HSSF工作簿(文件);
HSSFSheet sheet=wb.getSheetAt(0);
迭代器rowIterator=sheet.Iterator();
while(roweiterator.hasNext()){
行=行迭代器().next();\\这行由ECLIPSE加下划线!!!
迭代器cellIterator=row.cellIterator();
while(cellIterator.hasNext()){
Cell=cellIterator.next();
System.out.print(cell.getStringCellValue()+“\t\t”);
}
}
file.close();
文件输出流输出=
新文件输出流(新文件(“C:\\test.xls”);
wb.写(出);
out.close();
}
}
Eclipse总是在
行=行迭代器()下加下划线行。我不知道为什么?如何改进它?

在这一行:

Row row = rowIterator().next();
您正试图在自己的类上调用名为
rowIterator
的方法,当然您没有这样的方法

从上下文中可以清楚地看出,您的意思是引用已有的
rowditerator
变量。将其更改为:

Row row = rowIterator.next();  // No () on rowIterator
您需要删除行迭代器后面的“()”

而不是:

rowIterator().next();
应该是:

rowIterator.next()

问题不在于eclipse,而在于代码。不能将作为变量的rowIterator视为方法。不能使用()语法调用变量

试试这个:

  public static void main(String[] args) throws IOException {
    FileInputStream file = new FileInputStream(new File("C:\\Users\\XXXXXXXXXXXXXXXXal\\042012.xls"));
    HSSFWorkbook wb = new HSSFWorkbook(file);
    HSSFSheet sheet = wb.getSheetAt(0);
    Iterator<Row> rowIterator = sheet.iterator();
    while (rowIterator.hasNext()) {
      Row row = rowIterator.next();
      Iterator <Cell> cellIterator = row.cellIterator();
      while (cellIterator.hasNext()) {
        Cell cell = cellIterator.next();
        System.out.print(cell.getStringCellValue() + "\t\t");
      }
    }
    file.close();
    FileOutputStream out =
      new FileOutputStream(new File("C:\\test.xls"));
    wb.write(out);
    out.close();
  }
publicstaticvoidmain(字符串[]args)引发IOException{
FileInputStream文件=新的FileInputStream(新文件(“C:\\Users\\XXXXXXXXXXXXXX AL\\042012.xls”);
HSSF工作簿wb=新的HSSF工作簿(文件);
HSSFSheet sheet=wb.getSheetAt(0);
迭代器rowIterator=sheet.Iterator();
while(roweiterator.hasNext()){
行=行迭代器。下一步();
迭代器cellIterator=row.cellIterator();
while(cellIterator.hasNext()){
Cell=cellIterator.next();
System.out.print(cell.getStringCellValue()+“\t\t”);
}
}
file.close();
文件输出流输出=
新文件输出流(新文件(“C:\\test.xls”);
wb.写(出);
out.close();
}

尝试从此行Row=rowditerator.next()中删除括号;而不是Row=rowditerator().next();