Python openpyxl.reader.excel读取数据

时间:2012-03-18 10:54:38

标签: python openpyxl

大家好我正在使用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之类的。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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