检查Python字符串是否为有效的Excel单元格

问题描述 投票:2回答:3

给出Python中的一些字母数字字符串,例如

  • A9
  • B44B
  • C101
  • 4D4

如何检查字符串是否为有效的Excel单元格(即,字母位于数字前]?] >>

我曾尝试使用.isalpha.isdigit方法来“收集”字母和数字,然后使用.index检查所有字母是否都出现在数字之前,但是我的逻辑变得太复杂了,我觉得就像我没有考虑所有可能性。

有没有简单的方法可以实现这一目标?

预期结果:

>>> is_valid_excel_cell('A9')
True
>>> is_valid_excel_cell('B44B')
False
>>> is_valid_excel_cell('C101')
True
>>> is_valid_excel_cell('4D4')
False

给出Python中的一些字母数字字符串,例如A9 B44B C101 4D4,如何检查该字符串是否为有效的Excel单元格(即字母位于数字前)?我试过使用.isalpha和....

python excel string openpyxl
3个回答
3
投票

我将使用正则表达式,非常适合该任务:

import re

def is_valid_excel_cell(c):
    m = re.match("[A-Z]+\d+$",c)
    return bool(m)

2
投票

根据我的评论,有效性取决于Excel版本。较新的版本具有A-XDF的列范围和1-1048576的行。它在您的项目中可能不是必需的,但为将来参考可能会很方便:


1
投票
import re

def is_valid_excel_cell(addr):
    m = re.match(r'^([A-Z]{1,3})([1-9]\d*)$', addr)
    if not m:
        return False
    letters, numbers = m.groups()
    if len(letters) == 3 and letters > 'XFD':
        return False
    if int(numbers) > 1048576:
        return False
    return True
© www.soinside.com 2019 - 2024. All rights reserved.