openpyxl读取I3单元格值返回None问题求助
解决openpyxl读取I3单元格返回None的实用思路
- 先验证单元格实际存储:用Excel自带的
LEN(I3)函数查看字符数,确认单元格是否真的有内容;同时在代码里尝试读取单元格的raw_value(ws['I3'].raw_value),查看底层存储的原始数据。 - 调整openpyxl加载参数:尝试添加
data_only=True加载文件,即使无公式,部分特殊存储的单元格可能需要该参数才能读取到值:wb = openpyxl.load_workbook(pathToData+file, data_only=True) ws = wb.active print(ws['I3'].value) - 换一种单元格引用方式:改用行列索引读取,规避可能的单元格引用异常:
print(ws.cell(row=3, column=9).value) - 确认目标工作表:避免
wb.active指向错误的工作表,直接指定工作表名称读取,比如:ws = wb['Sheet1'] # 替换为实际工作表名 print(ws['I3'].value) - 交叉验证文件本身:拿一个有问题的文件,手动在Excel中重新输入I3的值并保存,再用代码读取,验证是文件存储问题还是代码问题;也可以用pandas等其他库读取该单元格,判断是openpyxl解析问题还是文件本身异常:
import pandas as pd cell_value = pd.read_excel(pathToData+file, usecols='I', skiprows=2, nrows=1, header=None).iloc[0,0] print(cell_value) - 回溯批量写入逻辑:如果这500个文件是通过脚本批量填充I3的,检查写入代码是否存在异常,比如未正确保存工作簿、写入时未正确赋值单元格等。
内容的提问来源于stack exchange,提问作者Fabsoe
相关产品推荐
相关产品推荐

