python - Xlwings 以小数形式读取浮点数的范围,并截断小数
问题描述
我正在尝试使用 xlwings 从“.xlsb”文件中读取二维值范围。该范围包含一系列公式,它们返回浮点数。当我读入这些值时,它会以小数而不是浮点数的形式读入。问题是超过 4 个点的小数会被截断。例如,我在 excel 中有一个值为 0.0913495 的值,但它被读取为十进制('0.0913')。更糟糕的是,当我尝试将这些小数转换为浮点数时,我发现任何超过 4 位小数的精度都被完全忽略了。例如调用 float(Decimal('0.0913')) 返回 0.0913!
到目前为止,我已经尝试了以下方法来解决这个问题,但都没有奏效:
- 通过调用 decimal.getcontext().prec = 28 将精度设置为 28。我也尝试过 7、8 等。这似乎没有任何改变。
- 使用 .options 方法: sheet.range("myrange").options(numbers = lambda x : float(x)).value
- 试过“.raw_value”
具有讽刺意味的是 (2) 仍然以小数形式返回数字,就好像我的选项被忽略了一样。
这是一个问题,因为对于我的特定应用程序,我依赖于比小数点后 4 位更高的精度,但 xlwings 拒绝以超过 4 位小数的任何精度读取估计值。我该如何解决?
作为参考,我将 xlwings 0.23.0 与 Python 3.8.8 和 Excel 版本 2108(Build 14326.20238)一起使用
解决方案
推荐阅读
- java - BitmapFactory.decodeStream 导致:D/skia: --- 无法创建带有消息“未实现”的图像解码器
- python - 从列表中打开文本文件以通过 for 循环
- c# - 在文本文件中从多个数据库表中写入信息的更有效方式
- python - 基于正则表达式模式突出显示数据框中的文本
- r - 在 Shiny R 中使用类似代码(最初有效)再次出现错误
- accessibility - 标签上的 for 和 select 标签上的 aria-labelledby 是否正确?
- mongodb - 如何使用 spring 的 mongo 模板中的 elemMatch 执行 mongo 查询?
- docker - 无法发送 docherize smpt 服务
- office365 - 在使用 office-js 通用 API 运行 SetSelectedDataAsync 时,是否可以取回插入的形状 ID/内联图片 ID?
- r - 上传到 R 时,CSV 文件中出现分号