'str'对象没有属性

时间:2016-07-14 13:26:34

标签: python excel attributeerror strerror

我正在尝试在excel中打开一个列,并将其所有值从其单元格移动到列表中。

def open_excel(col, excel_file): 
   open_file = openpyxl.load_workbook(excel_file) 
   sheet_object = open_file.get_sheet_names()[0]
   cell_vals = []
   col_num = column_index_from_string(start_col)
   for cell in sheet_object.columns[col_num]: 
       cell_vals.append(str(cell.value))

运行后我得到错误:

builtins.AttributeError: 'str' object has no attribute 'columns'

但我已经进口了所有东西。

这是我导入的内容:

import openpyxl 
from openpyxl.cell import get_column_letter, column_index_from_string
import numpy as np 
import matplotlib.pyplot as plt

1 个答案:

答案 0 :(得分:2)

您有一个工作表名称,一个字符串对象,分配给sheet_object

sheet_object = open_file.get_sheet_names()[0]

get_sheet_names()返回一系列字符串,而不是对象;它只返回self.sheetnames。您必须使用该名称来获取实际的工作表对象:

sheet_name = open_file.get_sheet_names()[0]
sheet_object = open_file[sheet_name]  # subscription takes sheet names

您可以使用以下方法轻松获取第一个活动工作表:

sheet_object = open_file.worksheets[0]