Python Excel从第2列开始从csv写入值

Python Excel从第2列开始从csv写入值,python,excel,xlwt,Python,Excel,Xlwt,我正在使用XLWT从.csv编写excel文件,csv中的第一列作为行的样式。如何开始写入从每行第二列开始的值(以避免打印出值,例如,“headerStyle”)?我尝试了一些不同的方法,比如创建一个colu计数,但没有任何运气 row_count = 0 style = rowStyle #Read each row and write to sheet for row in csv_input: #Iterate through each column fo

我正在使用XLWT从.csv编写excel文件,csv中的第一列作为行的样式。如何开始写入从每行第二列开始的值(以避免打印出值,例如,“headerStyle”)?我尝试了一些不同的方法,比如创建一个colu计数,但没有任何运气

row_count = 0
style = rowStyle

#Read each row and write to sheet
for row in csv_input:
        #Iterate through each column
        for col in range(len(row)):
            if col == 0:
                style = row[col]
            else:
                if(is_number(row[col]) == True):
                    sheet.write(row_count,col,float(row[col]),style)
                else:
                    sheet.write(row_count,col,row[col],style)

        #Increment row_count
        row_count += 1
感谢您的帮助!谢谢

我终于弄明白了。对于任何感兴趣的人来说,一个问题是样式作为字符串返回,所以我创建了一个函数来解决这个问题:

def assign_style(string):
    if string=='headerStyle':
        style = headerStyle
        return style
然后,将在跳过第一列时循环执行以下操作:

    row_count = 0

#Read each row and write to sheet
for row in csv_input:
        #Iterate through each column
        for col in range(len(row)):
            if col == 0:
                style = assign_style(row[col])
            elif(is_number(row[col]) == True):
                sheet.write(row_count,col-1,float(row[col]),style)
            else:
                sheet.write(row_count,col-1,row[col],style)      
        #Increment row_count
        row_count += 1
使用
iter()
。另外,不要迭代
范围()。而是使用
enumerate()
。使用三元运算符,有助于保持干燥:

for row_count, row in enumerate(csv_input):
    columns = iter(row)
    style = next(columns)
    for col_count, col in enumerate(columns, start=1):
        sheet.write(
            row_count,
            col_count,
            float(col) if is_number(col) else col,
            style
        )

您发布的代码的输出是什么?另外,请记住sheet.write是0索引的,因此使用您的代码,CSV中的第二列(即数据的第一列)将写入电子表格中的B列。您是对的,我通过在sheet.write语句中执行col-1来解决这个问题。我想出来了,若你们感兴趣的话,解决方案就在上面。谢谢这个问题显然是你上一个问题的后续。。。您当前的解决方案是预先计算要使用的样式并将其写入csv文件,这是一个惊人的难题。请看我对你上一个问题的回答。谢谢你的回答。我最终用了另一种方式,但你的方式看起来很有希望。我将来可以用的东西!