-1

大家好,我正在使用 python openpyxl 模块读取一个 xlsx 文件。当我阅读此文件时,它会更改 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 文件中,日期就像 4/27/2009 但在 csv 中我得到 2009-06-12 00:00:00 之类的。

4

2 回答 2

0

通过此函数传递日期以获取日期值。

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
于 2012-03-18T13:02:19.847 回答
0

您的print value行打印value, 一个datetime对象的默认表示。查看文档以了解如何以您想要的任何方式对其进行格式化。

于 2012-03-18T11:06:30.307 回答