Python:如何导入 Excel 单元格的显示(格式化)值而不是实际值
Python: how to import Excel cell's displayed (formatted) value instead of real value
例如,一个单元格的实际值为 1.96
。该单元格采用四舍五入格式,因此它在 Excel 中显示 2
。
另一个例子,一个单元格的值为 5
,但它被格式化为显示货币,所以
。
可以有任何类型的格式。所以我无法提前知道我在寻找什么格式。
如何使用 Python 导入这些显示值?我查看了 Pandas 和 openpyxl 但找不到方法。
我可以通过创建自定义 VBA 模块来半手动完成。在此处遵循 Duncan O'Donnell 的回答(最后一个):https://superuser.com/questions/678934/how-can-i-get-the-displayed-value-of-a-cell-in-ms-excel-for-text-that-was-conv
但我需要完全自动化并在 Python 中完成。感谢任何帮助,谢谢!
Openpyxl 有一个名为 number_format which could come in handy. I basically played with the output of dir 的功能可以做到这一点。
#let's say we have a value in cell C2 which is 1.96 but formatted to 2.0
print(ws['C2'].number_format)
# #
#表示它被格式化为整数。
# Create a conditional:
if fmt=="#":
r = round(ws['C2'].value)
print(r)
2.0
这有点乱七八糟,但应该对您的用例有所帮助。
对于美元部分,我会推荐你参考这个 ,因为我相信它很好地捕捉了你的用例。
我可以用 VBA 解决这个问题...所以我想 Python 毕竟没有简单的方法。
例如,一个单元格的实际值为 1.96
。该单元格采用四舍五入格式,因此它在 Excel 中显示 2
。
另一个例子,一个单元格的值为 5
,但它被格式化为显示货币,所以 。
可以有任何类型的格式。所以我无法提前知道我在寻找什么格式。
如何使用 Python 导入这些显示值?我查看了 Pandas 和 openpyxl 但找不到方法。
我可以通过创建自定义 VBA 模块来半手动完成。在此处遵循 Duncan O'Donnell 的回答(最后一个):https://superuser.com/questions/678934/how-can-i-get-the-displayed-value-of-a-cell-in-ms-excel-for-text-that-was-conv
但我需要完全自动化并在 Python 中完成。感谢任何帮助,谢谢!
Openpyxl 有一个名为 number_format which could come in handy. I basically played with the output of dir 的功能可以做到这一点。
#let's say we have a value in cell C2 which is 1.96 but formatted to 2.0
print(ws['C2'].number_format)
# #
#表示它被格式化为整数。
# Create a conditional:
if fmt=="#":
r = round(ws['C2'].value)
print(r)
2.0
这有点乱七八糟,但应该对您的用例有所帮助。
对于美元部分,我会推荐你参考这个
我可以用 VBA 解决这个问题...所以我想 Python 毕竟没有简单的方法。