2011-07-13 24 views
8

Có cách nào để xác định xem ô có phải là ngày không? Tôi biết về style.getDataFormatString() nhưng điều đó không giúp ích cho tôi, vì tôi không thể xác định liệu có đang định dạng cho ngày hay không.XSSF POI là ngày di động

Trả lời

12

Nếu bạn đang sử dụng Mô hình người dùng XSSF, thì bạn muốn DateUtil.isCellDateFormatted(Cell) - điều này sẽ trả về một boolean cho bạn biết liệu chuỗi định dạng cho ô có biểu thị dữ liệu hay không.

Nếu bạn đang sử dụng công cụ XML cấp thấp, bạn cần DateUtil.isADateFormat(int,String) thay thế. ID phong cách đến từ ô xml. Chuỗi kiểu bạn sẽ phải thoát ra khỏi bảng kiểu, đây là một phần gói khác. Có những người trợ giúp để tải rằng mặc dù

Bạn có thể muốn xem XSSFExcelExtractorDecorator from Tika để biết ví dụ về việc thực hiện sau - định dạng ô từ phân tích sự kiện.

+0

Tôi thực sự sao chép/dán http://mail-archives.apache.org/mod_mbox/poi-user/ 200905.mbox/%[email protected]%3E và cố gắng sửa đổi nó. Có, tôi đã thấy khả năng đó nhưng không biết cách lấy Cell. – Zemzela

+0

Bạn có đang sử dụng chương trình làm việc giả mạo XSSF hay làm mô hình sự kiện XML thô? – Gagravarr

+0

giây thứ hai: (. – Zemzela

0

cell.getCellTypeEnum() == CellType.NUMERIC & & DateUtil.isCellDateFormatted (cell)

+1

Tại sao bạn kiểm tra xem CellType có là Số hay không nếu câu hỏi có liên quan đến ô Ngày? – araknoid

+0

khi bạn sử dụng DateUtil.isCellDateFormatted (ô), nhưng CellType là Chuỗi, sẽ xuất hiện "java.lang.IllegalStateException: Không thể nhận giá trị NUMERIC từ ô STRING" @araknoid – laohans

+0

Bạn nên thêm chi tiết này vào câu trả lời và giải thích nó một chút vì vì nó được viết, Nó không phải là câu trả lời tự giải thích – araknoid

Các vấn đề liên quan