この記事は公開から1年以上経過しています。
Python(3.9)でxlrd(2.0.1)でEXCELを読み込んだ際に数値型として取得された日時をdatetime.datetime
オブジェクトへ変換する方法についての備忘録。
対応
from collections import namedtuple
import xlrd
CellPosition = namedtuple('CellPosition',['rowx', 'colx'])
book = xlrd.open_workbook('c:\\temp\\date_test.xls')
sheet = book.sheet_by_index(0)
# セルA1
cellPos = CellPosition(0, 0)
cell_type = sheet.cell_type(*cellPos)
cell_value = sheet.cell_value(*cellPos)
print(cell_value)
# セルの型が日付の場合はdatetime.datetimeオブジェクトに変換
if cell_type == xlrd.XL_CELL_DATE:
cell_value = xlrd.xldate_as_datetime(cell_value,book.datemode)
print(cell_value)
結果
入力EXCELファイル:
出力値:
45055.0
2023-05-09 00:00:00
以上です。