У меня есть Java-программа, которая использует apache-poi 3.17 для чтения и редактирования книг xlsx. Я пытаюсь прочитать дату, и формат важен. Мне нужна оригинальная дата, как тот, кто ее создал, набрал ее. Я много исследовал и обнаружил, что даты хранятся в Excel как целые числа, а десятичные числа - это время. Так, например, человек вводит «01.01.1947», а Excel хранит его внутри как «17168», а затем отображает в ячейке как «01-Jan-47». Я не могу изменить оригинальную рабочую книгу. Есть ли способ получить тот оригинал "01.01.1947", который был набран при использовании apache poi в java-программе? Когда я делаю:
Cell cell = row.getCell(cellColumn, MissingCellPolicy.CREATE_NULL_AS_BLANK);
String value = dataFormatter.formatCellValue(cell);
Значение отображается как отображаемое значение «01-Jan-47». Когда я делаю:
Cell cell = row.getCell(cellColumn, MissingCellPolicy.CREATE_NULL_AS_BLANK);
cell.setCellType(CellType.STRING);
String value = cell.getStringCellValue();
Я получаю внутреннее значение "17168". Кто-нибудь знает, как (или если это возможно) получить оригинал, набранный в значении? Он определенно хранится в книге Excel, поскольку отображается при нажатии на ячейку. В качестве альтернативы, если я отлаживаю программу в Eclipse и щелкаю на объекте ячейки, показанном выше, дата отображается в формате отображения, но у нее полный год из 4 цифр; "01-Jan-1947". Я также мог бы использовать это, если исходный формат не возможен, поэтому, если кто-то знает, как передать это в строку, это также поможет. Спасибо.