我是一颗跳跳糖哦 2023-11-24 17:48 采纳率: 50%
浏览 23
已结题

import xlrd,读取.xlsx文件,读取单元格数据部分显示异常{\n "_calcError": "#VALUE!"\n}

img


使用import xlrd 读取文件,部分数据显示异常无法正常显示

  • 写回答

8条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-11-24 17:48
    关注

    引自强大而免费的微信小程序:皆我百晓生

    您好,根据您的描述,您使用xlrd库读取.xlsx文件的部分单元格数据显示异常。异常信息为"_calcError": "#VALUE!"。

    这个异常信息通常表示在Excel文件中某些单元格的计算公式出现错误,导致无法正确读取数据。您可以尝试在读取单元格数据之前检查单元格是否包含公式,如果包含公式,可以先计算并获取其值。

    以下是一个示例代码,演示如何处理这种异常情况:

    import xlrd
    
    def read_excel(file_path):
        workbook = xlrd.open_workbook(file_path)
        sheet = workbook.sheet_by_index(0)  # 假设要读取第一个工作表
        data = []
    
        for row in range(sheet.nrows):
            row_data = []
            for col in range(sheet.ncols):
                cell = sheet.cell(row, col)
                if cell.ctype == xlrd.XL_CELL_FORMULA:  # 判断是否为公式单元格
                    try:
                        value = workbook.sheet_by_name(cell.value.split('!')[0][1:]).cell_value(row, col)
                    except Exception as e:
                        value = str(e)  # 如果公式计算出错,将异常信息作为值存储
                else:
                    value = cell.value
    
                row_data.append(value)
    
            data.append(row_data)
    
        return data
    
    file_path = "your_file_path.xlsx"
    data = read_excel(file_path)
    print(data)
    

    您可以将"your_file_path.xlsx"替换为您实际的文件路径,并运行代码进行测试。这段代码会将Excel文件的内容按行、列的方式存储在一个二维列表中,并会将公式计算错误的单元格的异常信息打印出来。

    希望这可以帮助到您,如果还有其他问题,请随时提问。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月25日
  • 创建了问题 11月24日