final JComponent parent = getModel().getContext().getEntranceUI(); JFileChooser chooser = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory()); chooser.setFileFilter(new FileFilter() { @Override public String getDescription() { // 设置选择类型 return "97~2003 Excel"; } @Override public boolean accept(File f) { // 过滤文件类型 if(f.isDirectory()) return true; String fileName = f.getName(); int i =fileName.lastIndexOf("."); if(fileName.substring(i+1).equalsIgnoreCase("xls")){ return true; } return false; } }); chooser.showOpenDialog(null); File file = chooser.getSelectedFile(); if(file == null) return; InputStream is = new FileInputStream(file); // 2、声明工作簿对象 Workbook rwb = Workbook.getWorkbook(is); // 3、获得工作簿的个数,对应于一个excel中的工作表个数 rwb.getNumberOfSheets(); Sheet oFirstSheet = rwb.getSheet(0);// 使用索引形式获取第一个工作表,也可以使用rwb.getSheet(sheetName);其中sheetName表示的是工作表的名称 // System.out.println("工作表名称:" + oFirstSheet.getName()); ArrayList<HashMap<String, Object>> arraylist = new ArrayList<HashMap<String,Object>>(); // HashMap<String, String[]> dataMap =new HashMap<String, String[]>(); int rows = oFirstSheet.getRows();// 获取工作表中的总行数 int columns = oFirstSheet.getColumns();// 获取工作表中的总列数 String[] title = new String[columns]; for (int i = 0; i < rows; i++) { HashMap<String, Object> hashMap = new HashMap<String, Object>(); String[] data = new String[columns]; for (int j = 0; j < columns; j++) { Cell cell = oFirstSheet.getCell(j, i);// 需要注意的是这里的getCell方法的参数,第一个是指定第几列,第二个参数才是指定第几行 // 表体第一行不put hashMap if(i==0){ title[j]=cell.getContents(); }else{ hashMap.put(title[j],cell.getContents()); } data[j]=cell.getContents(); System.out.print(cell.getContents() + " "); } // if(i==0){ // dataMap.put("title", data); // }else{ // dataMap.put((i+1)+"", data); // } if(!hashMap.isEmpty()){ arraylist.add(hashMap); } System.out.println(""); }