2016-07-14 113 views
-2

我想在excel中打开一列,并将它的单元格中的所有值移动到列表中。'str'对象没有任何属性

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 
+3

看看那里'columns'被作为访问属性....'print(type(sheet_object))'....查看'sheet_object'的定义位置....调试完成。 – miradulo

回答

2

你有表名称,一个String对象,分配给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] 
+0

@MartijnPieters谢谢你的工作 – Sasha

相关问题