在 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'))]
这里是新手
我假设这是一种情况,例如当您想使用 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'))]