作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个要转换的 exelfile,但数字的默认类型是 float。如何更改它以便 xlwings 显式使用字符串而不是数字?
这是我读取字段值的方式:xw.Range(工作表, 字段名).value
问题是,如果我从中创建一个字符串,像 40
这样的数字会转换为 40.0
。我用: str(xw.Range(sheetFronius, fieldname ).value).rstrip('0').rstrip('.')
删除它,但这不是很有帮助,并且会导致错误,因为有时同一字段可以同时包含数字和字符串。 (不同时,该值是从列表中选择的)
最佳答案
对于 xlwings,如果在读/写操作期间未设置任何选项,则单个单元格将作为“ float ”读入。另外,默认情况下,带有数字的单元格被读取为“ float ”。我搜索了文档,但不认为您可以直接通过 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 中的字符串即可。
祝你好运!
关于python - 如何将 xlwings 中的每个字段读取为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37996435/
我是一名优秀的程序员,十分优秀!