繁体   English   中英

Java程序使用Apache POI按特定名称将Excel中的数据分组?

[英]java program to group the data in excel by a specific name using 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.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);
}}

那个条件应该这样写。

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

您试图将布尔值转换为HSSFCell

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM