python之excel数据读取失败无法启动应用_python – 无法从桌面上看到的excel中读取数据...

我正在开发一个excel工作簿.我正在使用

python脚本来操作工作簿.但有两个问题:

1)有些单元格具有整数值.当我读取该值并将读取值放入报告文件(.txt)时,它会附加.0和数字.例如.如果有值6,则在不应该这样做时给出6.0.我已经读过excel中没有任何整数.仍然,我有1000个参数,因此,我不能使用一些python函数直接将它们全部转换为整数,因为这可能转换实际上也是浮点数的值.

2)当我读取布尔值TRUE和FALSE时,它给我1和0.我想得到我在桌面上的excel工作簿中看到的任何文本.我不希望任何类似的转换.

我在python中使用xlrd进行excel操作.

请告诉我应该怎么做才能解决这个问题?注意:我的Excel工作表包含100多张,我不能用“1和0”等修改“true或false”

xlrd给你所有的数字作为浮点数,你的布尔值作为整数.你如何打印它们纯粹是一个Python问题.

我知道你已经知道哪些单元格包含布尔值. (如果不这样做,请检查单元格的ctype,如Massimo Fuccillo在answer中所示 – 有关详细信息,请参阅下面@ JohnY的评论.)您可以通过简单地打印bool(var)而不是var来打印布尔单元格为True和False:

>>> var = 1

>>> print bool(var)

True

当写入文件时,这将按照预期输出为字符串’True'(resp.’False’).

由于Excel不区分整数和浮点数,我们假设整数表示分数部分为零的任何数字.当python打印一个浮点数时,它会添加.0以保留它是浮点数的信息.

如果您使用“%g”格式化输出数字,最简单的解决方案是禁止此操作:

>>> "%g" % 6.0

'6'

但是,“%g”将默认将实数舍入为六位有效数字(尽管您可以指定不同的精度).

>>> "%g" % 2500.03

'2500.03'

>>> "%g" % 2500.003

'2500'

因此,如果您自己检测积分值并将其打印出来,则更安全:

if int(var) == var:

print int(var)

else:

print var

我建议这样做.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值