讀取excel標題、內容

首先添加兩個包,在pom.xml裏面加入:

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

乾貨:

/**
 * 讀取excel標題、內容
 */
public void findCompanyIndustry() {
    List<Industry> list = industryRepository.findAll();
    System.out.println(list);
    Map<Integer, String> map = new HashMap<Integer, String>();
    Workbook workbook = null;
    String str = "";
    try {
        InputStream in = new FileInputStream("d:\\項目資料\\測試行業.xlsx");
        try {
            workbook = WorkbookFactory.create(in);
        } catch (IOException e) {
            throw new ServiceException(ResultEnum.ERROR.getCode(), "saveIndustry方法IOException");
        } catch (InvalidFormatException e) {
            throw new ServiceException(ResultEnum.ERROR.getCode(), "saveIndustry方法InvalidFormatException");
        }
        Sheet sheet = workbook.getSheetAt(0);
        Row row = sheet.getRow(0);
        // 標題總列數
        int colNum = row.getPhysicalNumberOfCells();
        System.out.println("colNum:" + colNum);
        String[] title = new String[colNum];
        for (int i = 0; i < colNum; i++) {
            title[i] = getCellFormatValue(row.getCell((short) i));
        }
        System.out.println("獲得Excel表格的標題:");
        for (String s : title) {
            System.out.print(s + " ");
        }
        System.out.println("");

        int rowNum = sheet.getLastRowNum();
        // 正文內容應該從第二行開始,第一行爲表頭的標題
        for (int i = 1; i <= rowNum; i++) {
            row = sheet.getRow(i);
            int j = 0;
            while (j < colNum) {
                // 每個單元格的數據內容用"-"分割開,以後需要時用String類的replace()方法還原數據
                // 也可以將每個單元格的數據設置到一個javabean的屬性中,此時需要新建一個javabean
                // str += getStringCellValue(row.getCell((short) j)).trim() +
                // "-";
                str += getCellFormatValue(row.getCell((short) j)).trim() + "-";
                j++;
            }
            map.put(i, str);
            str = "";
        }
        System.out.println("獲得Excel表格的內容:");
        for (int i = 1; i <= map.size(); i++) {
            System.out.println(map.get(i));
        }
        saveCompanyIndustry(list, map);
    } catch (FileNotFoundException e) {
        throw new ServiceException(ResultEnum.ERROR.getCode(), "saveIndustry方法IFileNotFoundException");
    }
}

/**
 * 根據HSSFCell類型設置數據
 *
 * @param cell
 * @return
 */
private String getCellFormatValue(Cell cell) {
    String cellvalue = "";
    if (cell != null) {
        // 判斷當前Cell的Type
        switch (cell.getCellType()) {
            // 如果當前Cell的Type爲NUMERIC
            case Cell.CELL_TYPE_NUMERIC:
            case Cell.CELL_TYPE_FORMULA: {
                // 判斷當前的cell是否爲Date
                if (HSSFDateUtil.isCellDateFormatted(cell)) {
                    // 如果是Date類型則,轉化爲Data格式

                    //方法1:這樣子的data格式是帶時分秒的:2011-10-12 0:00:00
                    //cellvalue = cell.getDateCellValue().toLocaleString();

                    //方法2:這樣子的data格式是不帶帶時分秒的:2011-10-12
                    Date date = cell.getDateCellValue();
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    cellvalue = sdf.format(date);

                }
                // 如果是純數字
                else {
                    // 取得當前Cell的數值
                    cellvalue = String.valueOf(cell.getNumericCellValue());
                }
                break;
            }
            // 如果當前Cell的Type爲STRIN
            case Cell.CELL_TYPE_STRING:
                // 取得當前的Cell字符串
                cellvalue = cell.getRichStringCellValue().getString();
                break;
            // 默認的Cell值
            default:
                cellvalue = " ";
        }
    } else {
        cellvalue = "";
    }
    return cellvalue;
}
控制檯輸出:

colNum:5
獲得Excel表格的標題:
發行人中文名稱 主體評級 一級行業 二級行業 三級行業 
獲得Excel表格的內容:
冀中能源峯峯集團有限公司    AA    原材料    煤炭    煤炭    
陽泉煤業(集團)有限責任公司    AAA    原材料    煤炭    煤炭    
山東能源集團有限公司    AAA    原材料    煤炭    煤炭    
山西焦煤集團有限責任公司    AAA    原材料    煤炭    煤炭    
晉能集團有限公司    AAA    原材料    煤炭    煤炭    
淮南礦業(集團)有限責任公司    AAA    原材料    煤炭    煤炭    
山西潞安礦業(集團)有限責任公司    AAA    原材料    煤炭    煤炭    
開灤(集團)有限責任公司    AA+    原材料    煤炭    煤炭    


發佈了106 篇原創文章 · 獲贊 255 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章