8

Python で xlrd を使用して、テキスト、数値、および日付を含むファイルをインポートしたいと考えていました。

私は次のようなものを試しました:

if "/" in worksheet.cell_value:
    do_this
else:
    do_that  

しかし、後で日付が文字列ではなく浮動小数点数として格納されることを発見したため、それは役に立ちませんでした。それらを日時型に変換するには、次のようにしました。

try:
    get_row = str(datetime.datetime(*xlrd.xldate_as_tuple(worksheet.cell_value(i, col - 1), workbook.datemode)))
except:
    get_row = unicode(worksheet.cell_value(i, col - 1))

セルにテキストが含まれている場合は例外があります。現在、すべての数値が日付に変換されているため、数値を数値として、日付を日付として取得したいと考えています。

何か案は?

4

2 に答える 2

10

xlrd で利用できるツールをもっと活用することで、これをもっと簡単にできると思います。

cell_type = worksheet.cell_type(row - 1, i)
cell_value = worksheet.cell_value(row - 1, i)

if cell_type == xlrd.XL_CELL_DATE:
    # Returns a tuple.
    dt_tuple = xlrd.xldate_as_tuple(cell_value, workbook.datemode)
    # Create datetime object from this tuple.
    get_col = datetime.datetime(
        dt_tuple[0], dt_tuple[1], dt_tuple[2], 
        dt_tuple[3], dt_tuple[4], dt_tuple[5]
    )
elif cell_type == xlrd.XL_CELL_NUMBER:
    get_col = int(cell_value)
else:
    get_col = unicode(cell_value)
于 2013-08-02T11:48:59.453 に答える