我正在研究excel workbook
。我正在使用python
脚本对workbook
进行操作。但有两个问题:
1)有些细胞有integer
值。当我读取这些值并将读取的值放入报表文件(.txt
)时,它会在.0
后面加上数字。如果有值6,当它不应该这样做时,它给出6.0。我读到excel中没有integer
这样的东西。不过,我有1000个参数,因此,我不能使用某个python
函数将所有参数直接转换为integer
,因为这可能也会转换实际上是float
的值。
2)当我读boolean
真与假时,它给出的是1和0。我想在桌面上的excel工作簿中得到任何text
的内容。我不想要这样的转换。
我正在使用xlrd
来执行excel
操作中的python
。
请告诉我该怎么解决这个问题?
注意:我的excel工作表包含100多个工作表,我不能用“1和0”等修改“真或假”
xlrd
将所有数字作为浮点数,布尔值作为整数。如何将它们打印出来纯粹是一个python问题。在你已经知道哪些单元格包含布尔值。(如果不这样做,请检查单元格的},只需打印}:
ctype
,如Massimo Fuccillo的answer中所示,有关详细信息,请参阅@JohnY的评论。)只需打印True
和{bool(var)
,而不是{当写入一个文件时,它将作为字符串
'True'
(resp。'False'
),如预期。在由于Excel不区分整数和浮点,我们假设
integer
表示小数部分为零的任何数字。当python打印一个float时,它添加.0
来保存它是一个float的信息。在如果用“%g”格式化输出的数字,则最简单的解决方案是取消此选项:
^{pr2}$但是,
"%g"
默认情况下会将实数舍入为六个有效数字(尽管可以指定不同的精度)。在因此,如果您自己检测积分值,并相应地打印出来,则更安全:
我建议这样做。在
对于布尔问题,您可以测试ctype:
如果excel原始单元格为“真”为“假”,则ctype值为4
相关问题 更多 >
编程相关推荐