Od jakiegoś czasu używam Apache POI do programowego odczytywania istniejących plików Excel 2003. Teraz mam nowe wymaganie, aby tworzyć całe pliki .xls w pamięci (nadal używam Apache POI), a następnie zapisywać je do pliku na końcu. Jedynym problemem stojącym na mojej drodze jest obsługa komórek z datami.
Rozważ następujący kod:
Date myDate = new Date();
HSSFCell myCell;
// code that assigns a cell from an HSSFSheet to 'myCell' would go here...
myCell.setCellValue(myDate);
Kiedy piszę skoroszyt zawierający tę komórkę do pliku i otwieram go w programie Excel, komórka jest wyświetlana jako liczba. Tak, zdaję sobie sprawę, że Excel przechowuje swoje „daty” jako liczbę dni od 1 stycznia 1900 r. I to właśnie reprezentuje liczba w komórce.
PYTANIE: Jakich wywołań API mogę użyć w POI, aby powiedzieć, że chcę zastosować domyślny format daty w mojej komórce daty?
Idealnie byłoby, gdyby komórka arkusza kalkulacyjnego była wyświetlana z tym samym domyślnym formatem daty, jaki przypisałby jej program Excel, gdyby użytkownik ręcznie otworzył arkusz kalkulacyjny w programie Excel i wpisał wartość komórki, którą program Excel rozpoznał jako datę.
BuiltinFormats
która zawiera listę wszystkich standardowych formatów (nie tylko formatów dat) znanych w programie Excel. Trzymam się jednego z nich, aby użyć go jako mojego parametru dogetFormat()
metody pokazanej w powyższym fragmencie.