读取带有头和数据的csv文件,并转换为xls文件

时间:2013-01-13 19:54:43

标签: python csv xlwt

我有csv数据文件,包含2行标题,行数和列数未知。例如

"x", "y"
"unit x", "unit y"
1, 2
3, 4

我使用以下代码读取csv文件并将其写入xls文件

import csv, xlwt

f = open('example.csv', 'rb')
reader = csv.reader(f)

workbook = xlwt.Workbook()
sheet = workbook.add_sheet("Sheet 1")

for rowi, row in enumerate(reader):
    for coli, value in enumerate(row):
        sheet.write(rowi,coli,value)

workbook.save("example.xls")

问题是它在xls中将所有数据写为文本。如何将文本转换为数字?我知道前2行是标题,数据从第3行开始到结尾。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

您可以查看您是否在第3行以及将value转换为int。

for rowi, row in enumerate(reader):
    for coli, value in enumerate(row):
        if rowi >= 2:
            value = int(value)
        sheet.write(rowi, coli, value)

您也可以尝试将所有值转换为数字。

for rowi, row in enumerate(reader):
    for coli, value in enumerate(row):
        try:
            value = int(value)
        except ValueError as e:
            pass
        sheet.write(rowi, coli, value)