在我的电子表格中,我的单元格包含一个字符串,例如
=some string here
如果格式化为常规,Excel将显示此单元格。这是有道理的,因为Excel正在尝试计算具有不存在的函数的单元格
#Name
DataNitro将单元格值返回为(也是有意义的)
dntypes.ExcelErrorName()
我可以手动将单元格指定为文本,Excel随后会显示该字符串,DataNitro会返回该字符串。然而,对于我需要的细胞数量来说,这是不可行的。
即使我尝试跳过这些单元格,我也无法像其他大多数类一样检查类型
type("a") == str
True
但是检查dntypes.ExcelErrorName会返回
dntypes is not defined
如何用其他值替换这些单元格,或将它们格式化为明文?
修改
写了一个函数来处理这些值,但我宁愿只将它用作临时修复
def errorfix(row):
for i,value in enumerate(row):
if type(value).__name__ == "ExcelErrorName":
row[i] = "EXCEL NAME ERROR"
return row
答案 0 :(得分:0)
您可以通过此功能传递值:
def get_text(val):
if not isinstance(val, ExcelError):
return val
if type(val) == ExcelErrorDiv0:
return "#DIV/0!"
if type(val) == ExcelErrorNA:
return "#N/A"
if type(val) == ExcelErrorName:
return "#NAME?"
if type(val) == ExcelErrorNull:
return "#NULL!"
if type(val) == ExcelErrorNum:
return "#NUM!"
if type(val) == ExcelErrorRef:
return "#REF!"
if type(val) == ExcelErrorValue:
return "#VALUE!"
raise TypeError("Unknown Excel Error")
isinstance(val, ExcelError)
是检查某些内容是否错误的最佳方法。
如果您经常这样做,您可能希望创建一个Cell
的子类,只要您调用value,就可以执行此操作。