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

如何使用Python提取Excel中指定月份对应行范围的列值

实现方案

你可以基于已有的openpyxl代码补充行遍历逻辑即可,以下是适配你需求的完整代码:

固定行范围版本(匹配你说的传入2021.10取A5到A13的需求)

import openpyxl as oxl

def get_month_data(target_month):
    load_excel = oxl.load_workbook('C:/Users/Homework.xlsx', data_only=True)
    load_sheet = load_excel['Sheet']
    result = []
    # openpyxl行号从1开始计数,range左闭右开,所以取5到13行要写range(5,14)
    for row_num in range(5, 14):
        cell_value = load_sheet[f"A{row_num}"].value
        result.append(cell_value)
    return result

# 测试调用
print(get_month_data("2021.10"))

通用动态匹配版本(无需提前知道行范围,自动匹配所有前缀为目标月份的A列值)

如果后续月份对应的行范围会变化,可以用这个版本:

import openpyxl as oxl

def get_month_data(target_month):
    load_excel = oxl.load_workbook('C:/Users/Homework.xlsx', data_only=True)
    load_sheet = load_excel['Sheet']
    result = []
    is_in_target_month = False
    # 遍历A列所有单元格
    for row in load_sheet.iter_rows(min_col=1, max_col=1, values_only=True):
        cell_val = row[0]
        # 遇到目标月份开头的日期,标记进入目标范围
        if cell_val and str(cell_val).startswith(target_month):
            is_in_target_month = True
        # 已经进入目标范围后,遇到下一个非空且不是目标月份开头的日期,结束遍历
        elif is_in_target_month and cell_val and not str(cell_val).startswith(target_month):
            break
        # 目标范围内的所有值都加入结果
        if is_in_target_month:
            result.append(cell_val)
    return result

# 测试调用
print(get_month_data("2021.10"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:36:04