import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.junit.Test; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.*; /** * 測試poi */ public class TestPOI1 { /** * 測試poi * XSSFWorkbook解析xlsx */ @Test public void testXlsx(){ File file = new File("C:\\test.xlsx"); if (!file.exists()){ //文件不存在,直接return return; } FileInputStream fis = null; Workbook workbook = null; try { fis = new FileInputStream(file); workbook = new XSSFWorkbook(fis); //調用方法 dealWorkBook(workbook); } catch (Exception e) { e.printStackTrace(); } finally { if (fis != null){ try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } if (workbook != null){ try { workbook.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * 測試poi * HSSFWorkbook解析xls */ @Test public void testXls() { File file = new File("C:\\test.xls"); if (!file.exists()) { //文件不存在,直接return return; } FileInputStream fis = null; Workbook workbook = null; try { fis = new FileInputStream(file); workbook = new HSSFWorkbook(fis, true); //調用方法 dealWorkBook(workbook); } catch (Exception e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } if (workbook != null) { try { workbook.close(); } catch (IOException e) { e.printStackTrace(); } } } } public void dealWorkBook(Workbook workbook){ workbook.setSheetName(0,"你的酒館對我打了烊"); System.out.println(workbook.getSheetName(0)); Sheet sheet = workbook.getSheetAt(0);//獲取第一個sheet HashMap<Integer, List<String>> map = new HashMap<Integer, List<String>>(); int i = 0; for(Row row : sheet){ map.put(i,new ArrayList<String>()); for (Cell cell : row){ switch (cell.getCellType()){ case STRING: map.get(i).add(cell.getRichStringCellValue().getString()); // 如果是字符串則保存 break; case _NONE: break; case NUMERIC: map.get(i).add(cell.getNumericCellValue()+""); //將數值轉換爲字符串 break; case BOOLEAN: break; case FORMULA: break; case BLANK: break; case ERROR: break; } } i++; } //遍歷excel表格 Set<Integer> keys = map.keySet(); Iterator<Integer> its = keys.iterator(); while (its.hasNext()){ List<String> list = map.get(its.next()); for (String s : list) { System.out.println(s+" "); } } } }
poi進行簡單的excel解析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.