Внутри внутреннего l oop, j
всегда будет перечислением 0,1,2
, поэтому вы многократно пишете в ячейки A1
, A2
и A3
. Вы можете убедиться в этом сами, если вы напечатаете результат на своей консоли:
A1 A
A2 25
A3 12345
A1 B
A2 90
A3 67890
A1 C
A2 31
A3 24680
A1 D
A2 89
A3 45678
Вы всегда хотите увеличить число в первом аргументе write
, чтобы следующая строка была проиндексирована; значение, на которое нужно увеличить, - это длина разделенного списка (3
для вашего текущего ввода, но чтобы убедиться, что я использую фактическую длину каждой строки ниже). Поскольку Excel начинает считать строки с 1
, этот счетчик также должен начинаться с 1
. Это будет работать:
counter = 1
for i in f.readlines():
for j,k in enumerate(i.split()):
worksheet.write('A'+str(j+counter), k)
counter += len(i.split())
Как и ваш собственный код и ожидаемый вывод, все, что он будет делать, это заполнять только первый столбец, с каждым значением во входе, игнорируя разрывы строк.