2016-07-26 3 views
1

В настоящее время я использую xlwings для отображения графиков и их соответствующих значений в microsoft excel. У меня есть 5 графиков и их координаты (в массиве), которые я успешно смог распечатать через цикл. К сожалению, столбцы, в которых они появились в должны были быть жестко закодированы и будут затронуты, если бы я был добавить больше участков, поэтому я изменил мой код:Индекс индекса инкрементирующего индекса Python через цикл

for i in range(1, 6): 
    Columns = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S"] 

    Range(Columns[0] + str(1)).value = list(zip(Xvalues)) 
    Range(Columns[1] + str(1)).value = list(zip(Yvalues)) 

В настоящее время это займет первый участок и напечатать х -координируется по вертикали в столбце A («A1»), а затем y-координаты также вертикально в столбце B («B1»), а затем продолжается.

Мой вопрос в том, как я могу увеличить индекс столбцов [] в цикле, чтобы мои следующие значения были столбцами [3] и столбцами [4]?

+0

Я не понимаю, о чем вы просите. Примером может быть полезно. –

+1

Вам не нужно переопределять переменную Columns внутри цикла –

+0

@DanielCentore Извините, я пропустил много кода для ясности, но проблема исправлена, спасибо. – RayBae

ответ

0

Вы можете использовать другую переменную, чтобы отслеживать индекс столбца. В этом случае j:

Columns = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S"] 
j = 1 
for j,i in enumerate(range(1, 5)):  
    Range(Columns[j] + str(1)).value = list(zip(Xvalues)) 
    Range(Columns[j+1] + str(1)).value = list(zip(Yvalues)) 
    j += 1 

Кроме того, вы не должны объявить список столбцов внутри цикла.

+0

Спасибо! Он работал отлично, мне просто нужно было изменить j = j * 3 для расстояния, которое я хотел. – RayBae

+0

Cheers, помощник. Счастливое кодирование для вас. – bernie

Смежные вопросы