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

Java 使用Apache POI API从Excel文件读取值,java,apache-poi,Java,Apache Poi,我正在使用一个程序从excel文件中读取值,然后返回读取的值。我尝试过使用迭代器和for循环,但程序并没有返回工作表中的所有值。请建议 import java.io.FileInputStream; import java.util.ArrayList; import java.util.Iterator; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Cell; im

我正在使用一个程序从excel文件中读取值,然后返回读取的值。我尝试过使用迭代器和for循环,但程序并没有返回工作表中的所有值。请建议

 import java.io.FileInputStream;
 import java.util.ArrayList;
 import java.util.Iterator;
 import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.CellValue;
    import java.io.File;

    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;

    public class ExcelReading {

public static STring ReadExcel(String Path){
    String FakeReturn = null;
try
    {
        FileInputStream file = new FileInputStream(new File(Path));

        XSSFWorkbook workbook = new XSSFWorkbook(file);

        XSSFSheet sheet = workbook.getSheetAt(0);

        for(Row row:sheet)
       {
            Cell cell=row.getCell(0);
            Cell testcell = row.getCell(1);
           if(cell.getStringCellValue()!=null)
             return testcell.getStringCellValue();
           else
              break;

        }
       file.close();

    } 
    catch (Exception e) 
    {
        System.out.println("The code carries an exception");
        e.printStackTrace();
        return FakeReturn;
    }

 return FakeReturn;
}

}

一旦遇到一个特定的单元格值,就退出,因此始终会得到一个相同的结果

要在遍历
时彻底遍历工作表,您必须获得该行中单元格的
迭代器
的句柄。一旦您获得单个
单元格
实例的句柄,请将其值存储到一个而不仅仅是一个值

 Iterator<Row> rowIterator = sheet.iterator();

 while (rowIterator.hasNext()) {
    Row row = rowIterator.next();

    Iterator<Cell> cellIterator = row.cellIterator();
    while (cellIterator.hasNext()) {
        Cell cell = cellIterator.next();
            cell.getStringCellValue(); //Do something useful with me
...

一旦遇到一个特定的单元格值,就退出,因此始终会得到一个相同的结果

要在遍历
时彻底遍历工作表,您必须获得该行中单元格的
迭代器
的句柄。一旦您获得单个
单元格
实例的句柄,请将其值存储到一个而不仅仅是一个值

 Iterator<Row> rowIterator = sheet.iterator();

 while (rowIterator.hasNext()) {
    Row row = rowIterator.next();

    Iterator<Cell> cellIterator = row.cellIterator();
    while (cellIterator.hasNext()) {
        Cell cell = cellIterator.next();
            cell.getStringCellValue(); //Do something useful with me
...

一旦遇到一个特定的单元格值,就退出,因此始终会得到一个相同的结果

要在遍历
时彻底遍历工作表,您必须获得该行中单元格的
迭代器
的句柄。一旦您获得单个
单元格
实例的句柄,请将其值存储到一个而不仅仅是一个值

 Iterator<Row> rowIterator = sheet.iterator();

 while (rowIterator.hasNext()) {
    Row row = rowIterator.next();

    Iterator<Cell> cellIterator = row.cellIterator();
    while (cellIterator.hasNext()) {
        Cell cell = cellIterator.next();
            cell.getStringCellValue(); //Do something useful with me
...

一旦遇到一个特定的单元格值,就退出,因此始终会得到一个相同的结果

要在遍历
时彻底遍历工作表,您必须获得该行中单元格的
迭代器
的句柄。一旦您获得单个
单元格
实例的句柄,请将其值存储到一个而不仅仅是一个值

 Iterator<Row> rowIterator = sheet.iterator();

 while (rowIterator.hasNext()) {
    Row row = rowIterator.next();

    Iterator<Cell> cellIterator = row.cellIterator();
    while (cellIterator.hasNext()) {
        Cell cell = cellIterator.next();
            cell.getStringCellValue(); //Do something useful with me
...

你真的认为这段代码行吗?你真的认为这段代码行吗?你真的认为这段代码行吗?你真的认为这段代码行吗?有没有办法读取电子表格中某一列的值?@user2911856查看编辑,您可以使用CellReference获取特定列的句柄。有没有办法读取电子表格中特定列的值?@user2911856查看编辑,您可以使用CellReference获取特定列的句柄。有没有办法读取电子表格中特定列的值?@user2911856查看编辑,您可以使用CellReference获取特定列的句柄。有没有办法读取电子表格中特定列的值?@user2911856查看编辑,您可以使用CellReference获取特定列的句柄