Python openpyxl.reader.excel чтение данных - PullRequest
0 голосов
/ 18 марта 2012

Привет всем. Я читаю один файл xlsx с помощью модуля python openpyxl. когда я читаю этот файл, он меняет свой формат даты даты в xlsx. Как я могу получить то же значение, что и в файле Excel. мой код

def xlsxToxCsv(inputfile, outfile):
    start = time.clock()
    wb=load_workbook(inputfile)
    for sheet in wb.worksheets:
        csv_file=outfile
        print 'Creating %s' % csv_file
        fd=open(csv_file, 'wt')
        for row in sheet.rows:
            values=[]
#            print row
            for cell in row:
                value=cell.value
                if sheet.is_date(value):
                    print value
#                print value
                if value is None:
                    value=''
                if not isinstance(value, unicode):
                    value=unicode(value)
                value=value.encode('utf8')
                value = "\""+value+"\""
                values.append(value)
#            print (','.join(values))
#            print values
            fd.write(','.join(values))
            fd.write('\n')
        fd.close()
        end = time.clock()
        print 'Code time %.6f seconds' % (end - start)
        return csv_file

Может ли кто-нибудь помочь мне получить то же значение файла Excel. в файле Excel дата как 27.04.2009, но в CSV я получаю 2009-06-12 00:00:00 как.

Ответы [ 2 ]

0 голосов
/ 18 марта 2012

Передайте даты через эту функцию, чтобы получить значения даты.

def make_date(xlnum):
    from datetime import date
    from datetime import timedelta
    year = timedelta(days=xlnum)
    my_birthday = date(1899, 12, 30)
    return my_birthday + year
0 голосов
/ 18 марта 2012

Ваша строка print value печатает представление по умолчанию value, объекта datetime. Ознакомьтесь с документацией, чтобы узнать, как ее отформатировать так, как вы хотите.

...