我正在尝试在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
答案 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]