Typeerror:迭代单元格时的元组指数

时间:2017-07-09 04:28:10

标签: python openpyxl

快速下降;我试图迭代列中的所有单元格" A"并输出单元格中使用的颜色的值。迭代第一个单元格时这很好,但是当它再次尝试时,我得到以下错误;

Traceback (most recent call last):
  File "C:\Users\Luke\Desktop\test.py", line 24, in <module>
    main(sys.argv[1])
  File "C:\Users\Luke\Desktop\test.py", line 11, in main
    color_dict[cell] = styles.colors.COLOR_INDEX[cell.fill.start_color.index]
TypeError: tuple indices must be integers or slices, not str

我迷失了,并且不确定为什么会一直发生这种情况,有关这一点的任何指示?

代码:

import sys
from openpyxl import load_workbook, styles

def main(fileName):
    color_dict = {}
    workbook = load_workbook(fileName)
    ltm = workbook.get_sheet_names()[7]
    ws = workbook.get_sheet_by_name(ltm)
    for row in ws.iter_rows("A{}:A{}".format(ws.min_row,ws.max_row)):
        for cell in row:
            color_dict[cell] = styles.colors.COLOR_INDEX[cell.fill.start_color.index]


if __name__ == '__main__':
    if len(sys.argv) < 2:
        print("Bad Syntax")
    main(sys.argv[1])

1 个答案:

答案 0 :(得分:1)

您收到类型错误,因为cell.fill.start_color.index是字符串,而styles.colors.COLOR_INDEX()接受整数作为参数。检查cell.fill.start_color.index的类型和内容,并将其显式转换为int。