Я понимаю, что об этом спрашивали несколько раз, но я не могу понять мою проблему, хотя я пробовал многие из приведенных ответов. Я пытаюсь прочитать ячейку Excel, которая представлена в виде даты, но когда она импортируется в мою программу с помощью Python, она представляется в виде числа с плавающей запятой.
Четвертый столбец в моей электронной таблице Excel (т.е. index = 3) содержит все даты, которые я пытаюсь преобразовать из числа с плавающей точкой в строку. Я просто добавляю все значения в список, чтобы что-то сделать со всей строкой, прежде чем очистить его и перейти к следующей строке.
Я основал свой код ниже из этого ответа: { ссылка }
Это пример данных, с которыми я работаю (файл):
import xlrd
workbook = xlrd.open_workbook(file)
worksheet = workbook.sheet_by_name('Sheet1')
num_rows = worksheet.nrows
num_cols = worksheet.ncols
values = []
i = 0
j = 0
while i < num_rows:
while j < num_cols:
if j == 3:
values.append(xlrd.xldate_as_tuple(str(worksheet.cell_value(i, j)), 0))
else:
values.append(worksheet.cell_value(i, j))
j += 1
j = 0
i += 1
values = []
Однако, мой код выше дает мне следующую ошибку на print(xlrd.xldate_as_tuple(str(worksheet.cell_value(i, j)), 0))
, и я не могу понять, почему.
TypeError: '<' не поддерживается между экземплярами 'str' и 'float' </p>
РЕДАКТИРОВАТЬ:
После отладки код выдает ошибку, где worksheet.cell_value (i, j) = 43588.0
EDIT2:
Я удалил str (...), приведенный вокруг Даты, чтобы включить: values.append(xlrd.xldate_as_tuple(worksheet.cell_value(i, j)), workbook.datemode)
, но это выдает ошибку:
Ошибка типа: xldate_as_tuple () отсутствует 1 обязательный позиционный аргумент: 'datemode'