XLRD迭代单元格时错误渲染True/False和百分比值
当单元格里有“真”(True)的时候,它会返回1;如果里面是“假”(False),它就返回0。
另外,如果有80%的话,它会显示成0.8。
我现在有点困惑,不知道该去哪里查找相关信息。
2 个回答
3
单元格对象有三个属性:ctype 是一个整数,value(这个值根据 ctype 而不同)和 xf_index。如果在打开工作簿时没有启用“格式信息”,那么 xf_index 的值会是 None。下面的表格描述了单元格的类型以及它们在 Python 中是如何表示的。
当你从文本文件中获取布尔值时,如果它是 0 或 1,你可以这样做:
text = ("FALSE", "TRUE")[bool_value_from_xl]
根据文档,xlrd 返回的是实际存储的底层数据值,而不是格式化后的结果。
1
我觉得问题出在文件上。你应该检查一下这个文件。
我也遇到过同样的问题,就是用OpenOffice和LibreOffice创建的xls文件里面有真和假的数据,结果返回的是0和1。
我发现当我用xlrd读取文件时,如果是用Microsoft Office创建的文件,xlrd工作得很好。所以请你检查一下这个问题。