Python 返回范围内所有单元格地址的列表
我有一个列表(通过openpyxl从Excel工作簿加载)中的范围列表(例如,Python 返回范围内所有单元格地址的列表,python,excel,range,openpyxl,Python,Excel,Range,Openpyxl,我有一个列表(通过openpyxl从Excel工作簿加载)中的范围列表(例如,rng_列表=['$a$1:$a$3','$B$1:$B$3','$C$1:$C$3']),我想将这些范围“解包”到列表中的单独列表中(即,unpacketed_列表=['$a$1','$a$2','$a$3'],[$B$1','','$B$B$2',“,$B$3',[$C']) 请参阅下面我在Jupyter笔记本中尝试的代码。你有没有想过为什么我会犯下面的错误?或者,如果你对我如何从不同的角度处理这个问题有想法,我将
rng_列表=['$a$1:$a$3','$B$1:$B$3','$C$1:$C$3']
),我想将这些范围“解包”到列表中的单独列表中(即,unpacketed_列表=['$a$1','$a$2','$a$3'],[$B$1','','$B$B$2',“,$B$3',[$C']
)
请参阅下面我在Jupyter笔记本中尝试的代码。你有没有想过为什么我会犯下面的错误?或者,如果你对我如何从不同的角度处理这个问题有想法,我将不胜感激!谢谢
import os
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
# create temp worksheet
wb_A = Workbook()
sheet_A = wb_A.create_sheet('sheetA')
# list with Excel ranges as str items in list
rng_list = ['$A$1:$B$10', '$C$1:$D$10', '$E$1:$F$10']
temp_list = []
unpacked_list = []
for item in rng_list:
for row in sheet_A(item): # use range from item in rng_list to iterate
through range in temp worksheet
for cell in row:
x = cell.row
y = cell.column
addr = get_column_letter(y) + str(x)
temp_list.append(addr)
unpacked_list.append(addr)
# delete temp worksheet
wb_A.remove(sheet_A)
unpacked_list
我希望使用列表中的range str来遍历一个“虚拟工作表”,该工作表只是为了遍历单元格范围并捕获该范围内相应的单元格地址而创建的。我得到以下错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-85-13b28d369550> in <module>
14
15 for item in rng_list:
---> 16 for row in sheet_A(item): # use range from item in rng_list to iterate through range in temp worksheet
17 for cell in row:
18 x = cell.row
TypeError: 'Worksheet' object is not callable
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
14
15对于rng_清单中的项目:
--->16对于工作表A(项目)中的行:#使用rng_列表中项目的范围来迭代临时工作表中的范围
17对于行中的单元格:
18 x=单元格.row
TypeError:“工作表”对象不可调用
语法!要访问单元格,需要使用方括号,括号用于函数调用
它应该是sheet_A[item]在更正了我的原始代码中的语法错误后(谢谢,Rahasya Prabhakar!),我修改了我的原始代码,以便根据需要工作 具体来说,我需要在初始For循环开始时将“temp_list”重新定义为空列表,并在初始For循环结束时将其附加到“unpacketed_list”以获得所需的解包范围列表 ''' 导入操作系统 从openpyxl导入工作簿 从openpyxl.utils导入获取列字母
# create temp worksheet
wb_A = Workbook()
sheet_A = wb_A.create_sheet('sheetA')
# list with Excel ranges as str items in list
rng_list = ['$A$1:$B$10', '$C$1:$D$10', '$E$1:$F$10']
temp_list = []
unpacked_list = []
for item in rng_list:
temp_list=[]
for row in sheet_A[item]: # use range from item in rng_list to iterate through
range in temp worksheet
for cell in row:
x = cell.row
y = cell.column
addr = get_column_letter(y) + str(x)
temp_list.append(addr)
unpacked_list.append(temp_list)
# delete temp worksheet
wb_A.remove(sheet_A)
print(unpacked_list)
''”谢谢Rahsaya Prabhakar!我能够在修改语法后运行代码,但是,上面的代码仍然没有给出我想要的结果。不过,我确实弄明白了需要如何修改,并将单独发布答案。谢谢