Tôi đã sử dụng Apache POI một thời gian để đọc các tệp Excel 2003 hiện có theo chương trình. Bây giờ tôi có một yêu cầu mới là tạo toàn bộ tệp .xls trong bộ nhớ (vẫn sử dụng Apache POI) và sau đó ghi chúng vào một tệp ở cuối. Vấn đề duy nhất cản trở tôi là việc xử lý các ô có ngày tháng.
Hãy xem xét đoạn mã sau:
Date myDate = new Date();
HSSFCell myCell;
// code that assigns a cell from an HSSFSheet to 'myCell' would go here...
myCell.setCellValue(myDate);
Khi tôi ghi sổ làm việc chứa ô này ra tệp và mở nó bằng Excel, ô được hiển thị dưới dạng số. Có, tôi nhận ra rằng Excel lưu trữ 'ngày tháng' của nó dưới dạng số ngày kể từ ngày 1 tháng 1 năm 1900 và đó là số trong ô biểu thị.
HỎI: Tôi có thể sử dụng lệnh gọi API nào trong POI để thông báo rằng tôi muốn áp dụng định dạng ngày mặc định cho ô ngày của mình?
Lý tưởng nhất là tôi muốn ô bảng tính được hiển thị với cùng một định dạng ngày mặc định mà Excel sẽ gán nó nếu người dùng đã mở bảng tính trong Excel theo cách thủ công và nhập vào một giá trị ô mà Excel nhận ra là một ngày.
BuiltinFormats
liệt kê tất cả các định dạng chuẩn (không chỉ định dạng ngày tháng) mà Excel biết. Tôi đang gắn bó với một trong những thứ đó để sử dụng làm tham số của mình chogetFormat()
phương pháp được hiển thị trong đoạn mã ở trên.