使用openpyxl无效单元格报错

openpyxl.utils.exceptions.CellCoordinatesException: Invalid cell coordinates (A)

在openpyxl中,单元格的坐标是以字母和数字的组合形式表示的,如"A1"、"B2"等。根据异常消息,您提供的单元格坐标可能不正确或缺失。

请确保您提供的单元格坐标是正确的,并且包含字母和数字的组合。例如,"A1"表示第一列第一行的单元格,"B2"表示第二列第二行的单元格,依此类推。

你写的A肯定是找不到单元格的,改改就好了

# 如取A1到C2单元格:cell_range = ws['A1':'C2']
cell_range = ws['首单元格':'末单元格']
  • 您还可以看一下 曾贤志老师的【曾贤志】openpyxl处理Excel数据 - 第2季 巩固篇课程中的 1.7 单元格区域信息获取小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    对于openpyxl库报错的问题,你可以尝试处理无效单元格的情况。以下是一种可能的解决方案:

    1.首先,你可以使用try-except块来处理访问不存在的单元格时可能引发的ValueError异常。在try块中访问单元格,并在except块中处理异常。你可以选择打印错误消息或执行其他适当的操作。

    示例代码如下:

    from openpyxl import load_workbook
    
    # 加载工作簿
    workbook = load_workbook('your_file.xlsx')
    
    # 获取活动表
    sheet = workbook.active
    
    # 需要访问的单元格
    cell = sheet['A10']
    
    try:
        value = cell.value
        print("Cell value:", value)
    except ValueError as e:
        print("Invalid cell:", e)
    

    2.另一种方法是在尝试访问单元格之前,首先检查单元格是否存在。你可以使用worksheet的cell方法来获取单元格对象并检查该对象是否为空。

    示例代码如下:

    from openpyxl import load_workbook
    from openpyxl.utils import get_column_letter
    
    def is_valid_cell(sheet, row, column):
        cell = sheet.cell(row=row, column=column)
        return cell.value is not None
    
    # 加载工作簿
    workbook = load_workbook('your_file.xlsx')
    
    # 获取活动表
    sheet = workbook.active
    
    row_index = 1
    column_index = 1
    
    if is_valid_cell(sheet, row_index, column_index):
        cell = sheet.cell(row=row_index, column=column_index)
        value = cell.value
        print("Cell value:", value)
    else:
        print("Invalid cell")
    

    这些解决方案应该能够帮助你处理openpyxl库中访问不存在的单元格的问题。如果你还有其他问题或需要进一步的帮助,请随时告诉我。