如何在xlwings中将每个字段读为字符串?

时间:2016-06-23 15:53:54

标签: python converter type-conversion xlwings

我有一个我要转换的exelfile但是数字的默认类型是float。如何更改它,以便xlwings显式使用字符串而不是数字?

这是我读取字段值的方法: xw.Range(sheet, fieldname ).value

问题是,如果我从中创建一个字符串,40之类的数字会转换为40.0。我用str(xw.Range(sheetFronius, fieldname ).value).rstrip('0').rstrip('.')剥离它,但这不是很有用并导致错误,因为有时同一个字段可以同时包含数字和字符串。 (不是同时,从列表中选择值)

1 个答案:

答案 0 :(得分:2)

对于xlwings,如果在读/写操作期间未设置任何选项,则单个单元格将作为“浮点数”读入。此外,默认情况下,带有数字的单元格将被读取为“浮动”。我搜索了文档,但不认为你可以通过xlwings将具有数字的单元格转换为“字符串”。幸运的是,一切都没有丢失......

您可以使用xlwings将单元格读入'int',然后在Python中将'int'转换为'string'。这样做的方法如下:

xw.Range(sheet, fieldname).options(numbers=int).value

最后,您可以通过这种方式读取数据(通过将字符串转换打包到选项中):

xw.Range(sheet, fieldname).options(numbers=lambda x: str(int(x))).value

然后你会以通常的方式将它转换为Python中的字符串。

祝你好运!