有没有办法在Excel中返回最高值?

问题描述 投票:0回答:1

问题

我正在使用 Excel 的 Python 扩展直接处理 Excel 工作表,并试图找出单元格列表中最大的数字。

这是我编写的函数的代码:

def getMax(celle_voti_lista) -> int:
    valori = [v for v in celle_voti_lista if isinstance(v, (int, float))]
    return max(valori) if valori else 0

这是函数调用:

max(xl("D11:D23"))

但是每次我运行这段代码时,它都会给我 0 而不是实际的最高数字。 我该怎么办?

python python-3.x excel max cell
1个回答
0
投票

尝试这样的事情:

from openpyxl import load_workbook

def xl(range_str, file_path, sheet_name):
    wb = load_workbook(file_path)
    sheet = wb[sheet_name]
    start_cell, end_cell = range_str.split(":")
    start_row, start_col = int(start_cell[1:]), start_cell[0].upper()
    end_row, end_col = int(end_cell[1:]), end_cell[0].upper()
    cells = []

    for row in sheet[f"{start_col}{start_row}":f"{end_col}{end_row}"]:
        for cell in row:
            cells.append(cell.value)
    return cells

def getMax(celle_voti_lista) -> int:
    valori = [v for v in celle_voti_lista if isinstance(v, (int, float))]
    return max(valori) if valori else 0

然后:

file_path = "data.xlsx"
sheet_name = "Sheet1"
max_value = getMax(xl("D11:D23", file_path, sheet_name))
print(max_value)
© www.soinside.com 2019 - 2024. All rights reserved.