java程序使用ApachePOI按特定名称对excel中的数据进行分组?

java程序使用ApachePOI按特定名称对excel中的数据进行分组?,java,excel,apache-poi,Java,Excel,Apache Poi,这是我从excel表格中提取数据并进行排序的整个程序。纠正错误后,代码中仍然存在问题。它执行得很好,但没有显示任何内容有人能找出错误吗 package com.pack.group; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.poi.hssf

这是我从excel表格中提取数据并进行排序的整个程序。纠正错误后,代码中仍然存在问题。它执行得很好,但没有显示任何内容有人能找出错误吗

package com.pack.group;

import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class demo {

private void readExcelFile(String fileName) {
           List cellDataList = new ArrayList();
    try {
            FileInputStream fileInputStream = new FileInputStream(fileName);
        POIFSFileSystem fsFileSystem = new POIFSFileSystem(fileInputStream);
        HSSFWorkbook workBook = new HSSFWorkbook(fsFileSystem);
        HSSFSheet hssfSheet = workBook.getSheetAt(0);
        Iterator rowIterator = hssfSheet.rowIterator();

        while (rowIterator.hasNext()) {
            HSSFRow hssfRow = (HSSFRow) rowIterator.next();
            Iterator iterator = hssfRow.cellIterator();
            List cellTempList = new ArrayList();
            while (iterator.hasNext()) {
                HSSFCell hssfCell = (HSSFCell) iterator.next();
                cellTempList.add(hssfCell);
            }
            cellDataList.add(cellTempList);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
       printToConsole(cellDataList);
} private void printToConsole(List cellDataList) {  

    for (int i = 0; i < cellDataList.size(); i++) 

    {
        List cellTempList = (List) cellDataList.get(i);
        if(((HSSFCell) cellTempList.get(2)).toString().equals("1")){
        {
        for (int j = 0; j < cellTempList.size(); j++) {

            HSSFCell hssfCell = (HSSFCell) cellTempList.get(j);
            String stringCellValue = hssfCell.toString();

            System.out.print(stringCellValue + "\t");
        }
      }
       }
        else { 
         i++;
        }
        System.out.println();
    }
}
public static void main(String[] args) {
    String fileName = "D:/datasheet.xls";
    new demo().readExcelFile(fileName);
}}
package com.pack.group;
导入java.io.File;
导入java.io.FileInputStream;
导入java.util.ArrayList;
导入java.util.Iterator;
导入java.util.List;
导入org.apache.poi.hssf.usermodel.HSSFCell;
导入org.apache.poi.hssf.usermodel.HSSFRow;
导入org.apache.poi.hssf.usermodel.HSSFSheet;
导入org.apache.poi.hssf.usermodel.HSSFWorkbook;
导入org.apache.poi.poifs.filesystem.poifsfsystem;
公开课演示{
私有void readExcelFile(字符串文件名){
List cellDataList=newarraylist();
试一试{
FileInputStream FileInputStream=新的FileInputStream(文件名);
poifsffilesystem fsFileSystem=新的poifsffilesystem(fileInputStream);
HSSF工作簿=新的HSSF工作簿(FSF文件系统);
HSSFSheet HSSFSheet=工作簿。getSheetAt(0);
迭代器rowIterator=hssfSheet.rowIterator();
while(roweiterator.hasNext()){
HSSFRow HSSFRow=(HSSFRow)行迭代器.next();
迭代器迭代器=hssfRow.cellIterator();
List celltemplast=newarraylist();
while(iterator.hasNext()){
HSSFCell HSSFCell=(HSSFCell)迭代器.next();
大提琴手。加(hssfCell);
}
添加(大提琴圣殿骑士);
}
}捕获(例外e){
e、 printStackTrace();
}
printToConsole(cellDataList);
}私有void printToConsole(List cellDataList){
对于(int i=0;i
条件应该这样写

if(((HSSFCell) cellTempList.get(2)).toString().equals("1")){
    //...
}

您试图向HSSFCell投射布尔值

@Amit谢谢!但是程序仍然没有显示任何东西你的代码似乎是正确的,删除if条件,看看它是否正在打印数据。是的,它正在打印细节,但我希望数据是例如:Name Id Trans_date Hana 1 8/8/12 Hana 1 7/9/12 Anna 12 8/8/12检查一下,这家伙有同样的要求