gpt4 book ai didi

python - 解释 Excel 货币值

转载 作者:行者123 更新时间:2023-12-01 00:01:08 25 4
gpt4 key购买 nike

我正在使用 python 从 Excel 读取货币值。 range.Value 方法返回的是一个我不知道如何解析的元组。

例如,单元格显示为 $548,982,但在 Python 中,返回值为 (1, 1194857614)。

如何从 Excel 中获取数值,或者如何将此元组值转换为数值?

谢谢!

最佳答案

试试这个:

import struct
try: import decimal
except ImportError:
divisor= 10000.0
else:
divisor= decimal.Decimal(10000)

def xl_money(i1, i2):
byte8= struct.unpack(">q", struct.pack(">ii", i1, i2))[0]
return byte8 / divisor

>>> xl_money(1, 1194857614)
Decimal("548982.491")

Microsoft COM 中的钱是一个 8 字节整数;它是定点,有 4 位小数(即 1 由 10000 表示)。我的函数的作用是获取 4 字节整数的元组,使用 struct 生成 8 字节整数以避免任何符号问题,然后除以常量 10000。该函数使用decimal.Decimal(如果可用),否则使用 float 。

更新(基于评论):到目前为止,仅以两个整数元组的形式返回 COM 货币值,因此您可能需要检查这一点,但不能保证这总是成功。但是,根据您使用的库及其版本,很可能稍后在升级后,您将收到 decimal.Decimal 而不再是两个整数元组。

关于python - 解释 Excel 货币值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/390263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com