Некоторое время я использую Apache POI для программного чтения существующих файлов Excel 2003. Теперь у меня есть новое требование - создавать целые файлы .xls в памяти (все еще используя Apache POI), а затем записывать их в файл в конце. Единственная проблема, стоящая на моем пути, - это обработка ячеек с датами.
Рассмотрим следующий код:
Date myDate = new Date();
HSSFCell myCell;
// code that assigns a cell from an HSSFSheet to 'myCell' would go here...
myCell.setCellValue(myDate);
Когда я записываю книгу, содержащую эту ячейку, в файл и открываю его в Excel, ячейка отображается в виде числа. Да, я понимаю, что Excel хранит свои «даты» как количество дней с 1 января 1900 года, и это то, что представляет собой число в ячейке.
ВОПРОС: Какие вызовы API я могу использовать в POI, чтобы сообщить ему, что я хочу, чтобы к моей ячейке даты применялся формат даты по умолчанию?
В идеале я хочу, чтобы ячейка электронной таблицы отображалась с тем же форматом даты по умолчанию, который Excel назначил бы ей, если бы пользователь вручную открыл электронную таблицу в Excel и ввел значение ячейки, которое Excel распознало как дату.
BuiltinFormats
котором перечислены все стандартные форматы (а не только форматы даты), известные Excel. Я использую один из них в качестве параметраgetFormat()
метода, показанного в приведенном выше фрагменте.