回覆列表
  • 1 # 使用者4243767351955

    如果單元格所存的內容為函式,則透過poi得到的cell type為Cell.CELL_TYPE_FORMULA;解析時的函式:

    switch (cell.getCellType()) {

    case Cell.CELL_TYPE_BOOLEAN:

    System.out.println(cellValue.getBooleanValue());

    break;

    case Cell.CELL_TYPE_NUMERIC:

    System.out.println(cellValue.getNumberValue());

    break;

    case Cell.CELL_TYPE_STRING:

    System.out.println(cellValue.getStringValue());

    break;

    case Cell.CELL_TYPE_BLANK:

    break;

    case Cell.CELL_TYPE_ERROR:

    break;

    case Cell.CELL_TYPE_FORMULA:

    CellValue cellValue = evaluator.evaluate(cell);

    switch (cellValue.getCellType()) {

    case Cell.CELL_TYPE_BOOLEAN:

    System.out.println(cellValue.getBooleanValue());

    break;

    case Cell.CELL_TYPE_NUMERIC:

    System.out.println(cellValue.getNumberValue());

    break;

    case Cell.CELL_TYPE_STRING:

    System.out.println(cellValue.getStringValue());

    break;

    case Cell.CELL_TYPE_BLANK:

    break;

    case Cell.CELL_TYPE_ERROR:

    break;

    // CELL_TYPE_FORMULA will never happen

    case Cell.CELL_TYPE_FORMULA:

    break;

    }

    }

    就是說要進行多一層的判斷,poi會透過其內部實現的函式去解析excel的函式;所以這裡可以解析excel函式,而如果是你自己用VB定義的函式,就需要另外處理了。

  • 中秋節和大豐收的關聯?
  • 百家姓中姓羅的祖先是做什麼的?