Typeerror: Tuple Indices when iterating over cells
Typeerror: Tuple Indices when iterating over cells
快运行下;我正在尝试遍历 "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])
您收到类型错误,因为 cell.fill.start_color.index
是一个字符串,而 styles.colors.COLOR_INDEX()
接受一个整数作为参数。检查 cell.fill.start_color.index
的类型和内容并将其显式转换为 int.
快运行下;我正在尝试遍历 "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])
您收到类型错误,因为 cell.fill.start_color.index
是一个字符串,而 styles.colors.COLOR_INDEX()
接受一个整数作为参数。检查 cell.fill.start_color.index
的类型和内容并将其显式转换为 int.