+ Ответить в теме
Показано с 1 по 2 из 2

Тема: Apache POI - Вопрос по выводу значений ячеек

  1. #1
    dummy Hehabr is on a distinguished road
    Регистрация
    09.07.2017
    Сообщений
    8
    Вес репутации
    0

    По умолчанию Apache POI - Вопрос по выводу значений ячеек

    Нижеследующий код выдает результат в консоли:
    ....................
    D5 - C34
    C34
    ....................
    Почему выводится сама формула (=C34) , стоящая в ячейке D5, а не число, которое видно в ячейке D5 если открыть сам файл?
    Как сделать чтобы выводилось само число?

    Код java:
    1. import org.apache.poi.ss.usermodel.*;
    2. import org.apache.poi.ss.util.CellReference;
    3. import org.apache.poi.xssf.usermodel.XSSFSheet;
    4. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    5. import java.io.*;
    6.  
    7. public class POITest {
    8.  
    9.     public static void main(String[] args) throws IOException {
    10.         FileInputStream fis = new FileInputStream("C:/Test/1.xlsm");
    11.         XSSFWorkbook workbook = new XSSFWorkbook(fis);
    12.         XSSFSheet sheet = workbook.getSheetAt(1);
    13.         CellReference ref = new CellReference("D5");
    14.         int row = ref.getRow();
    15.         int col = ref.getCol();
    16.         Cell cell = sheet.getRow(row).getCell(col);
    17.         gettingTheCellContents(ref, cell);
    18.         fis.close();
    19.         workbook.close();
    20.     }
    21.  
    22.     // https://poi.apache.org/spreadsheet/quick-guide.html#CellContents
    23.     private static void gettingTheCellContents(CellReference cellRef, Cell cell) {
    24.  
    25.         DataFormatter formatter = new DataFormatter();
    26.         System.out.print(cellRef.formatAsString());
    27.         System.out.print(" - ");
    28.  
    29.         // get the text that appears in the cell by getting the cell value and applying any data formats (Date, 0.00, 1.23e9, $1.23, etc)
    30.         String text = formatter.formatCellValue(cell);
    31.         System.out.println(text);
    32.  
    33.         // Alternatively, get the value and format it yourself
    34.         switch (cell.getCellTypeEnum()) {
    35.             case STRING:
    36.                 System.out.println(cell.getRichStringCellValue().getString());
    37.                 break;
    38.             case NUMERIC:
    39.                 if (DateUtil.isCellDateFormatted(cell)) {
    40.                     System.out.println(cell.getDateCellValue());
    41.                 } else {
    42.                     System.out.println(cell.getNumericCellValue());
    43.                 }
    44.                 break;
    45.             case BOOLEAN:
    46.                 System.out.println(cell.getBooleanCellValue());
    47.                 break;
    48.             case FORMULA:
    49.                 System.out.println(cell.getCellFormula());
    50.                 break;
    51.             case BLANK:
    52.                 System.out.println();
    53.                 break;
    54.             default:
    55.                 System.out.println();
    56.         }
    57.     }
    58.    
    59. }
    Последний раз редактировалось AiK; 03.08.2017 в 09:43. Причина: [code=java]

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Administrator Админ
    system architect
    AiK is on a distinguished road Аватар для AiK
    Регистрация
    13.02.2004
    Адрес
    СПб
    Сообщений
    2,298
    Вес репутации
    80

    По умолчанию Re: Apache POI - Вопрос по выводу значений ячеек

    В коде вроде достаточно очевидно прописано: если в ячейке формула - выведи формулу.
    Я бы попробовал так:
    Код java:
    1.  case FORMULA:
    2.                 System.out.println(cell.getCellFormula());
    3.                 System.out.println(cell.getNumericCellValue());
    4.                 break;
    Даже самый дурацкий замысел можно воплотить мастерски

+ Ответить в теме

Похожие темы

  1. защита ячеек
    друзья, как известно по умолчания в Excel все ячейки защищены (Формат ячеек / Защита / Защищаемая ячейка = V) как сделать так что бы по умолчанию...
    от Diment в разделе MS Office и VB(A).
  2. Apache vs PHP
    Я поставли себе Апач, вроде настроил...вроде работает (с хтмл страницами). Поставил потом пхп, тоже настроил, но при обращению в браузере к...
    от xpymep в разделе Apache, IIS...
  3. Выделение ячеек
    Кто поможет найти решение к следующему: Начиная с ячейки - B1, нужно выделить вниз, определенное кол-во ячеек. Кол-во ячеек которое необходимо...
    от urik в разделе MS Office и VB(A).
  4. Вопрос к учителю (Apache)
    Учитель, подскажи чайнику. Скачал apache_1.3.31rusPL30.20.tar, распоковал RARом, как теперь запустить configure? Этот файл не принадлежит ни к...
    от ALEX1 в разделе Perl, PHP, ASP ...
  5. Apache и ASP
    Подскажите как настроить Apache, чтобы он понимал ASP-скрипты.
    от Пацак с планеты Земля в разделе Apache, IIS...

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения