Số sẽ hiển thị trong "Ngày" loại Excel nếu bạn sử dụng một chuỗi định dạng tương ứng với một trong Excel tích hợp trong các chuỗi định dạng như dd/mm/yyy
. ví dụ:
import xlwt
import datetime
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet1')
date_format = xlwt.XFStyle()
date_format.num_format_str = 'dd/mm/yyyy'
worksheet.write(0, 0, datetime.datetime.now(), date_format)
workbook.save('date_format.xls')
Nếu bạn sửa đổi ví dụ này để sử dụng chuỗi định dạng d/mm/yyy
thì số sẽ hiển thị trong danh mục "Tùy chỉnh".
Lưu ý: mã ở trên hoạt động cho phiên bản Excel mà tôi đã thử nhưng có thể điều này tùy thuộc vào biến thể theo vùng. Điều tốt nhất cần làm là định dạng một số trong Excel với định dạng "Ngày" mà bạn muốn và sau đó, trong cùng một hộp thoại, hãy nhấp vào "Tùy chỉnh" để xem chuỗi định dạng nào được liên kết với định dạng "Ngày". Sau đó, sử dụng nó trong chương trình của bạn.
Cũng: Không có bất kỳ loại ngày gốc nào ở định dạng Excel XLS. Tất cả các ngày được lưu trữ dưới dạng số cộng với một định dạng. Không có gì để phân biệt chúng với bất kỳ số nào khác với định dạng ngoại trừ chuỗi định dạng. Đây là một trong những điều làm cho việc phân tích cú pháp tệp Excel trở thành nỗi đau vì bạn phải áp dụng các chẩn đoán để xác định xem một ô có chứa một ngày hay không.
Cảm ơn, đã có nó. – xorsyst
+1 cho ví dụ, nhưng cần thêm rằng chỉ có chuỗi định dạng ISO chẳng hạn như '2014-01-23' sẽ * không * chuyển đổi như mong đợi (định dạng sẽ là ngày, nhưng nội dung sẽ là chuỗi văn bản vô dụng) ; sử dụng đối tượng datetime() thực tế tránh được vấn đề này. Tôi đã không kiểm tra điều này bằng chuỗi ISO toàn diện như '2014-01-23T12: 34: 56', có thể vẫn hoạt động- một người khác nên thả ghi chú ở đây nếu họ biết điều này. – Ryder
@RyderDain Tiêu đề của câu hỏi là gây hiểu lầm và có lẽ cần được chỉnh sửa. Câu hỏi, câu trả lời và ví dụ là về cách tạo các định dạng ngày dựng sẵn so với các định dạng tùy chỉnh bằng cách sử dụng 'xlwt'. Việc tạo ngày thực tế không được thảo luận. – jmcnamara