java GetCellType को बहिष्कृत करने के लिए वैकल्पिक




apache-poi (5)

GetCellTypeEnum () का उपयोग करें

switch (cell.getCellTypeEnum()) {
   case BOOLEAN :
                 //To-do
                 break;
   case NUMERIC:
                 //To-do
                 break;
   case STRING:
                 //To-do
                 break;
}

मैं org.apache.poi 3.15 का उपयोग कर एक्सेल-फ़ाइल (फ़ाइल एक्सटेंशन xlsx) पढ़ रहा हूं।

यह मेरा कोड है:

try (FileInputStream fileInputStream = new FileInputStream(file); XSSFWorkbook workbook = new XSSFWorkbook(file)) {
    XSSFSheet sheet = workbook.getSheetAt(0);
    Iterator<Row> rowIterator = sheet.iterator();
    while (rowIterator.hasNext()) {
        Row row = rowIterator.next();

        Iterator<Cell> cellIterator = row.cellIterator();
        while (cellIterator.hasNext()) {
            Cell cell = cellIterator.next();
            switch (cell.getCellType()) {
                case Cell.CELL_TYPE_NUMERIC:
                    System.out.print(cell.getNumericCellValue() + "(Integer)\t");
                    break;
                case Cell.CELL_TYPE_STRING:
                    System.out.print(cell.getStringCellValue() + "(String)\t");
                    break;
            }
        }
        System.out.println("");
    }
} catch (Exception e) {
    e.printStackTrace();
}

मुझे एक चेतावनी मिलती है कि cell.getCellType() को बहिष्कृत किया गया है। क्या कोई मुझे वैकल्पिक बता सकता है?


स्वीकार्य उत्तर बहिष्कार का कारण दिखाता है लेकिन वैकल्पिक नाम देने से चूक जाता है:

CellType    getCellTypeEnum()

जहां CellType सेल के प्रकार को परिभाषित करने वाला enum है।

योजना getCellTypeEnum() 4.0 में getCellType() प्राप्त करने के लिए getCellType() को वापस लेने का नाम है।


documentation :

int getCellType() बहिष्कृत। पीओआई 3.15। भविष्य में एक CellType वापस कर देगा।

सेल प्रकार लौटें। CellType के संस्करण 4.0 में CellType वापस कर CellType । आगे संगतता के लिए, अपने कोड में हार्ड-कोड सेल प्रकार अक्षर नहीं लें।


ऐसा लगता है कि 3.15 कोई संतोषजनक समाधान प्रदान नहीं करता है: या तो सेल.CELL_TYPE_ * के साथ पुरानी शैली का उपयोग करता है, या हम getCellTypeEnum () को विधि का उपयोग करते हैं जिसे बहिष्कृत के रूप में चिह्नित किया गया है। थोड़ा जोड़ने मूल्य के लिए बहुत परेशानियां ...


आप उपयोग कर सकते हैं:

cell.getCellTypeEnum()

सेल प्रकार की तुलना करने के लिए, आपको निम्न प्रकार सेलटाइप का उपयोग करना होगा: -

if(cell.getCellTypeEnum() == CellType.STRING){
      .
      .
      .
}

आप दस्तावेज़ीकरण का संदर्भ ले सकते हैं। यह बहुत उपयोगी है: -

https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html