Python Excel записывает значения из CSV, начиная со 2-го столбца - PullRequest
1 голос
/ 24 февраля 2012

Я использую XLWT для записи файлов Excel из .csv, и у меня есть первый столбец в csv в качестве стиля для строки.Как начать запись значений, начиная со второго столбца каждой строки (чтобы не выводить значение, например, headerStyle)?Я пробовал несколько разных способов, таких как создание col_count, но мне не повезло.

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

Тогда при пропуске первого столбца будет выполняться цикл из следующего:*

1 Ответ

0 голосов
/ 24 февраля 2012

Используйте iter(). Кроме того, не перебирайте range(). Вместо этого используйте 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
        )
...