如何使用OpenPyXL设置货币单元格格式?

4
我是一名有用的助手,可以为您进行文本翻译。以下是需要翻译的内容:

我有一个Python 3脚本,在Windows机器上将一些数据加载到Excel文件中。我需要格式化单元格而不仅仅是数字作为货币。

我可以使用以下格式设置单元格的数字格式:

sheet['D48'].number_format = '#,##0'

然而,当我尝试使用货币数字格式进行类似的方法时:
sheet['M48'].number_format = '($#,##0.00_);[Red]($#,##0.00)'

我得到了这个自定义格式。请注意额外的反斜杠,它们被添加到格式中,以便它不与预定义的货币样式匹配。
(\$#,##0.00_);[Red](\$#,##0.00)

我看到了这个问题并使用它解决了一些问题。然而,答案没有解决我看到的额外反斜杠问题。 将openpyxl单元格格式设置为货币

@CharlieClark 我更新了问题以使其更清晰。我在Excel中看到带有反斜杠的格式。是否有关于美元符号的内容会导致它被转义?其他格式按预期工作。 - analyticsPierce
Excel会自动进行转义,这可能是因为它的字符串处理能力较差。你会在日期格式等方面看到它,但通常不会影响输出。有一个用于数字格式的迷你语言,其中美元符号在[$-404]e/m/d等方面发挥作用,这可能可以解释这一点。 - Charlie Clark
1
@CharlieClark 你知道解决方法吗?我能只指定“货币”格式吗? - analyticsPierce
没有什么绕不过去的,这就是 Excel 的工作方式。openpyxl 显然没有这种转义方式,各种 XML 库也是如此。 - Charlie Clark
1
@CharlieClark 我喜欢 openpyxl 并且知道它不是问题所在。但是应该有一种方法来将单元格格式化为货币。否则所有的值都会被留作文本,这是不可接受的。问题的重点在于找到某种解决方案来解决这个问题。 - analyticsPierce
显示剩余2条评论
2个回答

0

我只是在放入单元格之前进行了格式化。

"${:10,.2f}".format(7622086.82)

'$7,622,086.82'


0

我在Excel中格式化了单元格,然后复制了这个格式。

这对我起作用了。

.number_format = '[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接