Openpyxl复制时间,返回-1

时间:2016-08-09 21:16:02

标签: python excel python-2.7 datetime openpyxl

我正在尝试使用多个excel文件组合的excel文件。但是,当我复制值为00:00的单元格并将其附加到主excel文件时,excel认为时间是1899年?

这是我的代码:

def excel_graphs_all(day, users):
    chart_wb = Workbook(write_only=True)
    graph_ws = chart_wb.create_sheet(day + ' Graphs', 0)
    chart_wb_filename = 'graphs_' + day + '.xlsx'
    columnNum = ['A', 'H']
    rowNum = 1
    i = 0
    for user in users:
        filename = user[1] + '_' + day + '.xlsx'
        iter_wb = load_workbook(filename=filename,read_only=True)
        ws = iter_wb.active
        chart_ws = chart_wb.create_sheet(user[1])
        for row in ws.rows:
            chart_ws.append([row[0].value, row[1].value])
        chart = ScatterChart()
        chart.title = user[1] + ' ' + day + ' Heartrate Data'
        chart.x_axis.title = 'Time'
        chart.y_axis.title = 'Heartrate'
        chart.x_axis.scaling.min = 0
        chart.x_axis.scaling.max = 1
        xvalues = Reference(chart_ws, min_col=1, min_row=1, max_row= ws.max_row)
        yvalues = Reference(chart_ws, min_col=2, min_row=1, max_row= ws.max_row)
        series = Series(yvalues, xvalues, title='Heartrate')
        chart.series.append(series)
        spot = columnNum[i % 2]+str(rowNum)
        graph_ws.add_chart(chart, spot)
        if ((i+1)%2)== 0:
            rowNum += 16
        i += 1
    chart_wb.save(chart_wb_filename)
    return chart_wb_filename

谢谢!

1 个答案:

答案 0 :(得分:0)

你的价值00:00是什么意思? Excel使用格式而不是键入日期和时间。从规范:

  

使用1900日期系统时,其基准日期为30日   1899年12月,序列日期时间为1.5表示中午   1899年12月31日

听起来你只需要检查相关单元格的格式。