Проблема dateTime с XLRD & XLWT Python Libs
Вопрос
Я пытаюсь написать несколько дат от одной электронной таблицы Excel к другому. В настоящее время я получаю представление в Excel, который не совсем то, что я хочу, например, как это: «40299.2501157407»
Я могу получить дату распечатывания штрафа в консоль, однако, похоже, не работает правильно, запись в электронную таблицу Excel - данные должны быть типа даты Excel, у меня не может быть текстовая версия.
Вот линия, которая читает дату в:
date_ccr = xldate_as_tuple(sheet_ccr.cell(row_ccr_index, 9).value, book_ccr.datemode)
Вот линия, которая пишет дату:
row.set_cell_date(11, datetime(*date_ccr))
Ничего не делается до Date_ccr между этими двумя линиями, кроме нескольких сравнений.
Есть идеи?
Решение
Вы можете написать номер с плавающей запятой напрямую на электронную таблицу и установить формат номера ячейки. Установите формат, используя num_format_str
из XFStyle
Объект, когда вы пишете значение.
https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/doc/xlwt.html#xlwt.worksheet.write-method.
В следующем примере пишет дата 01-05-2010. (Также включает в себя время 06:00:10, но это скрыто форматом, выбранным в этом примере.)
import xlwt
# d can also be a datetime object
d = 40299.2501157407
wb = xlwt.Workbook()
sheet = wb.add_sheet('new')
style = xlwt.XFStyle()
style.num_format_str = 'DD-MM-YYYY'
sheet.write(5, 5, d, style)
wb.save('test_new.xls')
Существуют примеры числа форматов (num_formats.py) в папке примеров исходного кода XLWT. На моем Windows Machine: C: python26 lib сайт-пакеты xlwt примеры
Вы можете прочитать о том, как даты магазинов Excel (третий раздел на этой странице): https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html.