在错误的列中将xlsx转换为csv日期

时间:2018-04-16 14:41:21

标签: python csv xlsx

我正在尝试将xlsx文件转换为csv。我拼凑的代码有效,我遇到的唯一问题是当日期转换发生时,当日期在第5列时,它们被放在第1列。我不知道我是什么意思做错了?有什么建议/例子吗?

def xlsx2csv ():
    wb = xlrd.open_workbook('.xlsx', '.csv' )
    sh = wb.sheet_by_index(0)

    file = open('.csv', 'wb')
    csv_out = unicodecsv.writer(, encoding = 'utf-8')

    for row_number in range(sh.nrows):
        date = sh.row_values(row_number)[5]

        if isinstance(date, float) or isinstance(date, int):
            year, month, day, hour, minute, sec = xlrd.xldate_as_tuple(date,0)
            py_date = "%2d/%2d/%04"% (month, day, year)
            wr.writerow[py_date] + sh.row_vlaues(row_number)[0:])
      else:
            wr.writerow([py_date] + sh_row_values(row_number)[0:])

     file.close()

xlsx2csv()

1 个答案:

答案 0 :(得分:0)

您要将整行附加到日期。 这就是运算符+处理列表的方式。

a = 1
b = [2,3,4]
a + b #[1,2,3,4]

重做此代码。

 wr.writerow[py_date] + sh.row_vlaues(row_number)[0:])

类似于。

new_row = sh.row_vlaues(row_number)[0:]
new_row[5] = py_date
wr.wroterow(new_row)  # save it to csv

由于日期是数组中的第6个元素,由sh.row_values(row_number)[5]

判断