1. 程式人生 > >POI之匯入Excel

POI之匯入Excel

注:請根據實際的開發情況更改方法

1.匯入依賴

<!--poi-->
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>3.6</version>
    </dependency>

    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>3.17</version>
    </dependency>

      <dependency>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-scratchpad</artifactId>
          <version>3.17</version>
      </dependency>

2.工具類方法(請根據實際應用更改

    /**
     *
     * @param filePath:檔案地址(D:/123.xls)
     * @param column:表格列數
     */
    public static void getDataFromExcel(String filePath,int  column) {

        //判斷是否為excel型別檔案
        if(!filePath.endsWith(".xls")&&!filePath.endsWith(".xlsx")) {
            System.out.println("檔案不是excel型別");
        }

        FileInputStream fis =null;
        Workbook wookbook = null;

        try {
            //獲取一個絕對地址的流
            fis = new FileInputStream(filePath);
        } catch(Exception e) {
            e.printStackTrace();
        }

        try {
            //2003版本的excel,用.xls結尾
            wookbook = new HSSFWorkbook(fis);//得到工作簿
        } catch (Exception ex) {
            //ex.printStackTrace();
            try {
                //2007版本的excel,用.xlsx結尾

                wookbook = new XSSFWorkbook(fis);//得到工作簿
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        //得到一個工作表
        Sheet sheet = wookbook.getSheetAt(0);

        //獲得表頭
        Row rowHead = sheet.getRow(0);

        //判斷表頭是否正確
        if(rowHead.getPhysicalNumberOfCells() != column) {
            System.out.println("表頭的數量不對!");
        }

        //獲得資料的總行數
        int totalRowNum = sheet.getLastRowNum();

        //要獲得屬性
        String on="";
        String name = "";
        String age = "";

        //獲得所有資料
        for(int i = 1 ; i <= totalRowNum ; i++)
        {
            //獲得第i行物件
            Row row = sheet.getRow(i);

            //獲得獲得第i行第0列
            Cell cell = row.getCell((short)0);
            on =  cell.getStringCellValue();

            //獲得獲得第i行第1列
            cell = row.getCell((short)1);
            name =  cell.getStringCellValue();

            //獲得獲得第i行第2列
            cell = row.getCell((short)2);
            age =   cell.getStringCellValue();
            System.out.println("編號:"+on+",名字:"+name+",年齡:"+age);

        }
    }

3.測試

 

@Test
    public void t1(){
        getDataFromExcel("D:\\下載\\人員檔案列表.xls",3);
    }

表格內容:

結果如下: