Varolan Excel 2003 dosyalarını programlı olarak okumak için bir süredir Apache POI'sini kullanıyorum. Şimdi tüm .xls dosyalarını bellek içinde (hala Apache POI kullanarak) oluşturmak ve ardından bunları bir dosyaya yazmak için yeni bir gereksinimim var. Yolumdaki tek sorun, tarihlerin bulunduğu hücrelerin işlenmesi.
Aşağıdaki kodu göz önünde bulundurun:
Date myDate = new Date();
HSSFCell myCell;
// code that assigns a cell from an HSSFSheet to 'myCell' would go here...
myCell.setCellValue(myDate);
Bu hücreyi içeren çalışma kitabını bir dosyaya yazdığımda ve Excel ile açtığımda, hücre bir sayı olarak görüntüleniyor. Evet, Excel'in 'tarihlerini' 1 Ocak 1900'den bu yana geçen gün sayısı olarak sakladığının farkındayım ve hücredeki sayı bunu temsil ediyor.
SORU: Tarih hücreme varsayılan bir tarih biçiminin uygulanmasını istediğimi söylemek için İÇN'de hangi API çağrılarını kullanabilirim?
İdeal olarak, elektronik tablo hücresinin, bir kullanıcı elektronik tabloyu Excel'de manuel olarak açıp Excel'in tarih olarak algıladığı bir hücre değerini yazmış olsaydı, Excel'in atayacağı aynı varsayılan tarih biçimiyle görüntülenmesini istiyorum.
BuiltinFormats
Excel'in bildiği tüm standart biçimleri (yalnızca tarih biçimlerini değil) listeleyen bir POI sınıfı vardır .getFormat()
Yukarıdaki kod parçacığında gösterilen yönteme parametrem olarak kullanmak için bunlardan birine bağlı kalıyorum .