1. 程式人生 > >poi 導入Excle

poi 導入Excle

tro 版本 class http ati sta 工作 () mic

一,AOP 是什麽

Apache POI 提供java 程序對Microsoft Office格式文檔的讀寫功能操作

二,所需要的jar包

技術分享圖片

三,實現代碼

1, 讀取Excle 返回Workbook格式

  //讀取excel
    public static Workbook readExcel(String filePath) {
        Workbook wb = null;
        if (filePath == null) {
            return null;
        }
        String extString = filePath.substring(filePath.lastIndexOf("."));
        InputStream is 
= null; try { is = new FileInputStream(filePath); //獲取文件流 if (".xls".equals(extString)) { return wb = new HSSFWorkbook(is); //將文件留轉換成相對的Excle 模板 , 2003版本 } else if (".xlsx".equals(extString)) { return wb = new XSSFWorkbook(is); //
將文件留轉換成相對的Excle 模板 2007版本 } else { return wb = null; } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return wb; }

2, 接下來就是要對獲取到的workbook 類型進行再一次數據獲取

Workbook :Exlce 模板

Sheet :工作簿

Row : 行數據

Cell : 列數據

  public static  void  getExcle(String path){
        Workbook wb=null; //獲取Excle
        Sheet sheet = null; //獲取Excle 中的工作簿
        Row row = null; //獲工作簿中行數據

        wb = readExcel(path);  //獲取Excle
        sheet = wb.getSheetAt(0);//獲取第一個工作簿
        int rownum =sheet.getPhysicalNumberOfRows();  //獲取最大行數
        for(int i=0 ; i<rownum ;i++){  //循環遍歷 數據
            row = sheet.getRow(i); //獲取當前行數據
            System.out.println("第一列:"+row.getCell(1)+"---第二列"+row.getCell(2));
        }
    }

優化代碼

 public static Map getIncident(String filePath) {
        Workbook wb = null;
        Sheet sheet = null;
        Row row = null;
        List<Map<String, String>> list = null;
        Map<String, String> map = new LinkedHashMap<String, String>();//存放Excle表格內容
        wb = readExcel(filePath);
        if (wb != null) {
            //用來存放表中數據
            list = new ArrayList<Map<String, String>>();
            //獲取第一個sheet
            sheet = wb.getSheetAt(0);
            //獲取最大行數
            int rownum = sheet.getPhysicalNumberOfRows();
            //獲取第一行
            row = sheet.getRow(0);
            //獲取最大列數
            int colnum = row.getPhysicalNumberOfCells();
            for (int i = 0; i < rownum; i++) {
                row = sheet.getRow(i);
                if (row != null) {
                    map.put((String) getCellFormatValue(row.getCell(0)), (String) getCellFormatValue(row.getCell(1)));
                } else {
                    break;
                }
            }
        }

        return map;
    /*//遍歷解析出來的list
        for (Map.Entry<String,String> entry : map.entrySet()) {
            System.out.print(entry.getKey()+":"+entry.getValue()+",");
        }*/
    }

poi 導入Excle