XLRD迭代单元格时错误渲染True/False和百分比值

3 投票
2 回答
710 浏览
提问于 2025-04-17 15:35

当单元格里有“真”(True)的时候,它会返回1;如果里面是“假”(False),它就返回0。

另外,如果有80%的话,它会显示成0.8。

我现在有点困惑,不知道该去哪里查找相关信息。

2 个回答

3

单元格对象有三个属性:ctype 是一个整数,value(这个值根据 ctype 而不同)和 xf_index。如果在打开工作簿时没有启用“格式信息”,那么 xf_index 的值会是 None。下面的表格描述了单元格的类型以及它们在 Python 中是如何表示的。

Check this

当你从文本文件中获取布尔值时,如果它是 0 或 1,你可以这样做:

text = ("FALSE", "TRUE")[bool_value_from_xl]

根据文档,xlrd 返回的是实际存储的底层数据值,而不是格式化后的结果。

1

我觉得问题出在文件上。你应该检查一下这个文件。

我也遇到过同样的问题,就是用OpenOffice和LibreOffice创建的xls文件里面有真和假的数据,结果返回的是0和1。

我发现当我用xlrd读取文件时,如果是用Microsoft Office创建的文件,xlrd工作得很好。所以请你检查一下这个问题。

撰写回答