如何用openpyxl读取Excel多个工作表的值?现有代码仅返回单个值
解决Excel多工作表指定单元格值读取问题
原代码的问题在于循环中每次将单元格值赋值给同一个变量cell_obj,循环结束后该变量仅保留最后一次循环的结果,因此只能输出最后一个工作表的值。以下是两种可行的修改方案:
方案1:循环内直接打印每个工作表的值
在遍历每个工作表时,实时打印对应单元格的值,避免值被覆盖:
import openpyxl path = "./docs/hoi.xlsx" wb_obj = openpyxl.load_workbook(path, data_only=True) sheet_names = [' Overzicht Noord ', 'Overzicht Midden'] for sheet_name in sheet_names: sheet_obj = wb_obj[sheet_name] cell_value = sheet_obj.cell(row=6, column=8).value # 用strip()去除工作表名前后空格,输出更整洁 print(f"工作表「{sheet_name.strip()}」的指定单元格值:{cell_value}")
方案2:将结果存储到字典中(方便后续处理)
如果需要对读取到的值进行后续操作,可以把工作表名和对应值存储到字典中,最后统一输出或使用:
import openpyxl path = "./docs/hoi.xlsx" wb_obj = openpyxl.load_workbook(path, data_only=True) sheet_names = [' Overzicht Noord ', 'Overzicht Midden'] cell_values = {} # 存储工作表名与对应值的映射 for sheet_name in sheet_names: sheet_obj = wb_obj[sheet_name] cell_values[sheet_name.strip()] = sheet_obj.cell(row=6, column=8).value # 遍历字典打印所有结果 for sheet, value in cell_values.items(): print(f"工作表「{sheet}」的指定单元格值:{value}") # 也可直接打印整个字典查看完整结果 # print(cell_values)
内容的提问来源于stack exchange,提问作者mightycode Newton
相关产品推荐
相关产品推荐

