在 Python 的 pywin32 中使用 table 替换字符串,例如 =IF(A1='CA','California',A1='AL', 'Alabama',A1= 'NY', 'New York')

Replcae string using table in pywin32 of Python like =IFS(A1='CA','California',A1='AL', 'Alabama',A1='NY', 'New York')

这里是新手

我假设这是一种情况,例如当您想使用 translate(string.maketrans) 但您想用多个字符替换某些单词时。

我正在尝试自动执行简单的 excel 任务,其中需要 translate/replace 某些单词。

我知道有很多方法可以做到这一点,例如在我使用 win32 时使用 for 循环或 excel 公式本身,但我在下面尝试认为它更简单,只是逻辑上不明白为什么会这样无法工作。

trans={'CA':'California','TX':'Texas','NY':'New York'}  
wb2.Range('F10').value=str(wb1.Range('F2')).translate(trans)

Returns 没有错误,但在 wb2.Range('F10') 中什么也没发生 →实际上F2(in sheet1)的值将直接复制到F10(in sheet2)而无需替换。

谁能帮帮我?

谢谢。

因为你有字典中的数据,你可以直接调用它作为 dict[element]

>>> trans['CA']
>>> 'California'

代码:

trans={'CA':'California','TX':'Texas','NY':'New York'}  
wb2.Range('F10').value= trans[str(wb1.Range('F2'))]