Java 读取excel 文件
我用poi实现
doImport(String url) throws Exception{ FileInputStream file=new FileInputStream(url);//获取excel文件 HSSFWorkbook hssfworkbook = new HSSFWorkbook(file); HSSFSheet hssfsheet = hssfworkbook.getSheetAt(0);//第一个工作表 Map<String, Object> map=new HashMap<String, Object>(); StringBuffer errorMessage=new StringBuffer();//错误信息 StringBuffer wornMessage=new StringBuffer();//警告信息 String str=""; //遍历该行所有的行,j表示行数 getPhysicalNumberOfRows行的总数 ArrayList<MetadataPO> list=new ArrayList<MetadataPO>();//创建List 集合 MetadataPO mePo = null; //列坐标 Row row=null; for(int j=1;j<hssfsheet.getPhysicalNumberOfRows();j++){ int t=j+1;//行坐标 //行坐标 int k=0; mePo=new MetadataPO(); row = hssfsheet.getRow(j); if(row==null){ wornMessage.append("提示:\n"+t+" 行没有数据。\n"); break; } /** *//**将EXCEL中的第 j 行,第一列的值插入到实例中*/ //获取第一行第一列 //1判断元数据名称 if(row.getCell(k)==null){ errorMessage.append("错误提示:元数据名称不能为空 \n"+"错误:("+t+"行,"+1+"列)\n"); break; }else{ //设置元数据名称,取消前后的空格 mePo.setName(row.getCell(k).getStringCellValue().trim()); } k++; //2元数据的中文名称 if(row.getCell(k).getStringCellValue().equals("")||row.getCell(k).getStringCellValue()==""||"null".equals(row.getCell(k).getStringCellValue())){ errorMessage.append("错误提示:元数据中文名称不能为空 \n"+"错误:("+t+"行,"+2+"列)\n"); break; }else{ mePo.setDisplaylabelZh(row.getCell(k).getStringCellValue().trim()); } ………………………N 行对数据的判断…………………………… list.add(mePo); } int z=hssfsheet.getPhysicalNumberOfRows(); int nextLine=list.size()+1; if(list.size()<z-1){ errorMessage.append("导入提示:\n"+"成功导入"+list.size()+"条数据,请根据提示检查第:"+nextLine+"行数据"); }else{ errorMessage.append("导入提示:\n"+"成功导入"+list.size()+"条数据"); } map.put("dataList", list); map.put("wornMessage", wornMessage); map.put("errorMessage", errorMessage); return map; }