You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

xlwings报错'Sheet' object has no attribute 'cell',如何修正copy_range函数?

解决xlwings中'Sheet' object has no attribute 'cell'错误

问题原因

xlwings的Sheet对象没有cell()方法,你错误调用了不存在的方法导致报错。xlwings获取单元格的正确方式是使用cells(row, column)或者range((row, column))。

修正方案

修改copy_range函数中的单元格获取代码,二选一即可:

方案1:使用cells方法

def copy_range(start_col, start_row, end_col, end_row, sheet):
    range_selected = []
    for i in range(start_row, end_row + 1, 1):
        row_selected = []
        for j in range(start_col, end_col + 1, 1):
            # 替换cell为cells
            row_selected.append(sheet.cells(i, j).value)
        range_selected.append(row_selected)
    return range_selected

方案2:使用range方法

def copy_range(start_col, start_row, end_col, end_row, sheet):
    range_selected = []
    for i in range(start_row, end_row + 1, 1):
        row_selected = []
        for j in range(start_col, end_col + 1, 1):
            # 使用range传入(row, column)元组获取单元格
            row_selected.append(sheet.range((i, j)).value)
        range_selected.append(row_selected)
    return range_selected

额外修正

你的numerical_sort函数存在笔误:part[1::2]应该改为parts[1::2],否则后续调用该函数时会触发NameError。

完整修正代码

import os, shutil
from tkinter import *
from tkinter import filedialog
import re 
import xlwings as xw 
import numpy as np

file_names = xw.Book(filedialog.askopenfilename())
file_names_sh = file_names.sheets['fe_0.85']

folder_source_train = filedialog.askdirectory()
train_destination   = r'D:\Machine_learning\train/' 

numbers= re.compile(r'(\d+)')

def numerical_sort(value):
    parts= numbers.split(value)
    # 修正笔误:part改为parts
    parts[1::2]= map(int, parts[1::2])
    return parts

def copy_range(start_col, start_row, end_col, end_row, sheet):
    range_selected = []
    for i in range(start_row, end_row + 1, 1):
        row_selected = []
        for j in range(start_col, end_col + 1, 1):
            row_selected.append(sheet.cells(i, j).value)
        range_selected.append(row_selected)
    return range_selected

selectedRange_train = copy_range(1, 1, 2, 100, file_names_sh)

内容的提问来源于stack exchange,提问作者KJ Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 20:05:26