获取错误,因为“org.apache.poi.hssf.usermodel.HSSFRow无法转换为org.apache.poi.ss.usermodel.Row”

我正在写java代码来读取列名称为“Key”和“Value”的excel文件。 但是,由于无法投射在这行代码上,

行firstRow =(Row)sheet.getRow(0);

如何解决这个错误,请帮助我。

public static void main(String[] args) throws Exception { FileInputStream fileIn = new FileInputStream("c://param_2003.xls"); POIFSFileSystem fs = new POIFSFileSystem(fileIn); HSSFWorkbook filename = new HSSFWorkbook(fs); HSSFSheet sheet = filename.getSheetAt(0); String column1 = "Key"; String column2 = "Value"; Integer columnNo1 = null; Integer columnNo2 = null; List<Cell> cells = new ArrayList<Cell>(); Row firstRow =(Row)sheet.getRow(0); for(org.apache.poi.ss.usermodel.Cell cell:firstRow){ if (cell.getStringCellValue().equals(column1)){ columnNo1 = cell.getColumnIndex(); } } for(org.apache.poi.ss.usermodel.Cell cell:firstRow){ if (cell.getStringCellValue().equals(column2)){ columnNo2 = cell.getColumnIndex(); } } System.out.println(columnNo1); System.out.println(columnNo2); } 

你的类path中有不匹配的Apache POI jar包。 您需要确保所有的Apache POIjar子都来自同一个版本,如果将旧的新jar子结合起来,那么这些东西将不起作用。

要查看需要的jar包,请查看Apache POI组件页面 ,其中列出了它们及其依赖关系

要计算出实际使用的jar(可能不是您认为正在使用的jar),请参阅第一个Apache POI FAQ条目中的代码片段

一旦你有一套一致的兴趣点jar子(写作时将基于3.10),应该没问题

只select一个POI库。