在python中获取Excel实例的语言

时间:2019-12-24 10:16:27

标签: python excel pywin32 xlwings

我使用xlwings ws.range('A1').number_format = '#.0;[Red]-#.0'设置了格式,但是其中一位用户使用的是法文Excel,并且由于[Red]而导致错误。我必须添加一个基于Excel语言的条件,对于法语Excel实例,该条件必须为[Rouge]

这是我的问题,你知道我如何在python(pywin32 / xlwings)中获得Excel实例的语言吗?

在VBA中,以下代码对于英语Excel将返回1,对于法语Excel将返回33:

Application.International(xlApplicationInternational.xlCountryCode)

但是我无法获得等效的python。

谢谢。

2 个答案:

答案 0 :(得分:0)

wb.app.api.International返回一个元组,根据语言,索引0为1或33。

答案 1 :(得分:0)

如所问,Python 等价于

Application.International(xlApplicationInternational.xlCountryCode)

应该是这样的(wb 是一个 xlwings.Workbook 实例):

from xlwings.constants import ApplicationInternational
int_constants = wb.app.api.International
country_code = int_constants[ApplicationInternational.xlCountryCode]

ApplicationInternational 定义了可用于检索 International 类的相应属性的索引,如上所述。根据经验,有时您需要从这些值中减去 1。

我在指定颜色方面没有很多经验,但可能可以在 RGB 中指定颜色(似乎是 possible in VBA)。这样您就可以完全跳过语言环境部分(如果您喜欢,可以使用 xlwings.constants.RgbColor.rgbRed 之类的东西)