मैं कुछ समय के लिए अपाचे POI का उपयोग कर रहा हूँ मौजूदा Excel 2003 फ़ाइलों को प्रोग्रामेटिक रूप से पढ़ने के लिए। अब मुझे संपूर्ण .xls फ़ाइलें इन-मेमोरी (अभी भी अपाचे POI का उपयोग करके) बनाने के लिए एक नई आवश्यकता है और फिर उन्हें अंत में एक फ़ाइल में लिखें। मेरे रास्ते में खड़ी होने वाली एकमात्र समस्या तारीखों के साथ कोशिकाओं की हैंडलिंग है।
निम्नलिखित कोड पर विचार करें:
Date myDate = new Date();
HSSFCell myCell;
// code that assigns a cell from an HSSFSheet to 'myCell' would go here...
myCell.setCellValue(myDate);
जब मैं इस सेल वाले वर्कबुक को फाइल में लिखता हूं और इसे एक्सेल के साथ खोलता हूं, तो सेल एक नंबर के रूप में प्रदर्शित होता है। हां, मुझे एहसास है कि एक्सेल 1 जनवरी 1900 से दिनों की संख्या के रूप में अपनी 'तारीखों' को संग्रहीत करता है और सेल में संख्या का प्रतिनिधित्व करता है।
प्रश्न: मैं यह बताने के लिए कि मैं अपनी तिथि सेल पर लागू एक डिफ़ॉल्ट तिथि प्रारूप चाहता हूं, यह बताने के लिए मैं पीओआई में किस एपीआई कॉल का उपयोग कर सकता हूं?
आदर्श रूप से मैं चाहता हूं कि स्प्रेडशीट सेल को उसी डिफ़ॉल्ट तिथि प्रारूप के साथ प्रदर्शित किया जाए जो एक्सेल ने इसे सौंपा होगा यदि किसी उपयोगकर्ता ने एक्सेल में मैन्युअल रूप से स्प्रेडशीट को खोला था और एक सेल मूल्य में टाइप किया था जिसे एक्सेल ने तारीख के रूप में मान्यता दी थी।
BuiltinFormats
एक्सेल को पता है कि सभी मानक प्रारूपों (न सिर्फ तारीख स्वरूपों) को सूचीबद्ध करता है। मैंgetFormat()
ऊपर के स्निपेट में दिखाए गए विधि के लिए मेरे पैरामीटर के रूप में उपयोग करने के लिए उनमें से एक के साथ चिपका रहा हूं ।