遍歷某個文件夾下全部的excel讀取sheet標籤頁面的名稱

業務場景:java

好比說電腦是由不少個小的系統組成,這裏的系統指的不是操做系統,是BOM結構。原先一個系統一個Excel,Excel中的標籤頁是一個零件,頁籤內的內容是零件屬性。若是如今將BOM結構維護進系統,若是手痛添加會很是的費事。apache

 

代碼以下:
import java.io.File;json

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;xss

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;操作系統

/**
 * 讀取文件夾下全部Excel獲取sheet頁名稱
 * @author Tepu
 *
 */
public class ExcelMore {.net

    public static void main(String[] args) {
        JSONObject tree = new JSONObject();
        // 要讀取的文件目錄
        String filesPath = "";
        File file = new File(filesPath);
        if(!file.isDirectory()) {
            return;
        }
        
        // 讀取目錄下的文件列表
        File[] fileArr = file.listFiles();
        for(int i=0; i<fileArr.length; i++) {
            if(isExcel(fileArr[i].getName())) {
                // 只讀取Excel文件
                String systemName = getSystemName(fileArr[i].getName());
                tree.put(systemName, toImport(fileArr[i]));
            }
        }
        System.out.println(JSONObject.toJSONString(tree));
    }
    
    /**
     * 讀取excel內容
     * @param file
     * @return
     */
    public static JSONArray toImport(File file) {
        JSONArray array = new JSONArray();
        JSONObject obj;
        try {
            XSSFWorkbook workbook = new XSSFWorkbook(file);
            XSSFSheet sheet;
            for(int i=0; i<workbook.getNumberOfSheets(); i++) {
                sheet = workbook.getSheetAt(i);
                obj = new JSONObject();
                obj.put("componentsName", sheet.getSheetName());
                array.add(obj);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(array.size());
        return array;
    }
    
    /**
     * 文件名稱如:XXXXX-XXXX系統.xlsx
     * 根據文件名獲取系統名稱
     * @param fileName
     * @return
     */
    public static String getSystemName(String fileName) {
        if(fileName != null && !fileName.equals("")) {
            return fileName.substring(fileName.indexOf("-") + 1, fileName.lastIndexOf("."));
        }
        return "";
    }
    
    /**
     * 判斷文件是否是excel
     * @param fileName
     * @return
     */
    public static boolean isExcel(String fileName) {
        if(fileName != null && (fileName.endsWith(".xls") || fileName.endsWith(".xlsx"))) {
            return true;
        }
        return false;
    }
}
 excel

相關文章
相關標籤/搜索