Tôi đang cố đọc dữ liệu từ tệp .xlsx bằng SharpZipLib để giải nén nó (trong bộ nhớ) và đọc các tệp xml bên trong. Mọi thứ đều ổn nhưng công nhận ngày tháng - chúng được lưu trữ ở định dạng julean và tôi cần phải bằng cách nào đó nhận ra nếu một số là một ngày hoặc chỉ một số. Trong một chủ đề khác (tiếc là nó đã chết và tôi cần câu trả lời nhanh) Tôi đã biết một số điều từ Mark Baker, nhưng vẫn chưa đủ ...Đọc ngày từ các tệp OpenXml Excel
"Excel stores date as a float value ... the integer một phần là số ngày kể từ 1/1/1900 (hoặc 1/1/1904 tùy thuộc vào lịch nào đang được sử dụng), phần phân đoạn là tỷ lệ của một ngày (tức là phần thời gian) ... làm cho hơi khó xử hơn bởi thực tế là năm 1900 được coi là năm nhuận 1.
Điều duy nhất phân biệt dữ liệu từ một số là mặt nạ định dạng số. Nếu bạn có thể đọc mặt nạ định dạng, bạn có thể sử dụng để xác định giá trị làm ngày thay vì một số ... sau đó tính giá trị/định dạng ngày từ ngày cơ sở. "
"Nhưng không thuộc tính 's' cho những ngày luôn luôn có giá trị của '1' Tôi biết nó xác định phong cách, nhưng có lẽ;?)"
Các s thuộc tính tham chiếu một mục nhập xf kiểu trong styles.xml và không phải lúc nào cũng là mục nhập 1 cho các ngày ... tất cả phụ thuộc vào số lượng kiểu khác nhau đang được sử dụng trong sổ làm việc. Phong cách xf lần lượt tham chiếu một mặt nạ định dạng số. Để xác định ô có chứa ngày, bạn cần thực hiện tra cứu kiểu xf -> numberformat, sau đó xác định xem mặt nạ định dạng số đó có phải là mặt nạ định dạng số ngày/giờ (thay vì, ví dụ, tỷ lệ phần trăm hoặc mặt nạ định dạng số)
"thêm một câu hỏi - tôi bây giờ nhìn vào nội dung của style.xml và trong phần tôi thấy các yếu tố như:" < xf numFmtId = "14" ... applyNumberFormat = "1"/>", "< xf numFmtId =" 1 "... applyNumberFormat =" 1 "/ >", v.v. nhưng không có <numFmts> phần ... Có định dạng "chuẩn" nào không? Hay tôi chỉ thiếu một thứ gì đó? "
Ai đó có thể giúp tôi không? Cảm ơn trước.
Đây là danh sách các định dạng ngày Id http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.NumberingFormat(v=office.14).aspx –
có thể trùng lặp của [Điều gì biểu thị Office Open XML Cell có chứa giá trị Ngày/Giờ?] (Http://stackoverflow.com/questions/4730152/what-indicates-an-office-open-xml-cell-contains-a-date-time-value) – MikeTeeVee