Предостережение: я никогда не использовал pyexcel, так как предпочитаю модули CSV ...
Нет опыта работы с этим модулем, но, учитывая ваш синтаксис, пару мыслей здесь:
sheet
- это некоторый объект, к которому можно получить доступ с помощью метода __getitem__()
- Для доступа к чему-либо в
sheet
это либо sheet[row, col]
, либо sheet['A#']
- Ваше высказывание о том, что
sheet[1, 2]
потерпит крах из-за пробела в [1, 2]
Учитывая эти ограничения, давайте рассмотрим то, что вы опубликовали.Во-первых, давайте начнем с ваших примеров выходных данных:
print "%s" % index
# [0, 0]
# [0, 1]
# [0, 2] ... etc.
Ну, это говорит мне, что index
имеет тип list
, содержащий целые числа, что имеет смысл, учитывая предыдущую строку:
index = [list_rows[r],list_columns[c]]
Затем вы говорите, что ваша программа дает сбой в следующей строке:
print sheet[index] <------
Но вы сказали, что sheet
должен быть проиндексирован в соответствии с ограничениями в пункте 2, давайте посмотрим, что вы делаете:
index = [list_rows[r],list_columns[c]]
# For example, the first one is [0, 0]
# Currently, index = [0, 0]
print "%s" % index # Which prints index as a string
print sheet[index] # You're doing sheet[[0, 0]]
# Wait, you broke Item 2 constraints!
Итак, попробуйте следующее:
print sheet[index[0], [index[1]]
или ... print sheet[*index]
как немного чище
Честно говоря, вы можете уменьшить код:
def Scroller(max_row,max_column):
r = 0
while r <= (len(list_rows)-1):
c = 0
while c <= (len(list_columns)-1):
print sheet[list_rows[r],list_columns[c]]
c += 1
r += 1
Однако некоторые сведения о форматировании строки: