ฉันใช้ 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()
วิธีการที่แสดงในตัวอย่างด้านบน