xlwings 的formula功能输出的公式和想要的不同,多了@
month_dict = {1:'Q',2:'R',3:'S',4:'T',5:'U',6:'V',7:'W',8:'X',9:'Y',10:'Z',11:'AA',12:'AB'}
a = month_dict[6]
b = month_dict[6-4]
c = month_dict[6+1]
d = month_dict[6+2]
str_temp1 = a + "5" + ":" + b + "5" +"/" + a + "$2" +":" + b + "$2" +"," + "AR" + "5" + "/" + "$" + c +"$2"
str_temp2 = "/6*" + d +"$2"
str_formula = "=SUM(" + str_temp1 + ")" + str_temp2
app = xw.App(visible = True, add_book = False)
wb = app.books.open(r"C:\Users\Admin\Desktop\Test.xlsx")
sht = wb.sheets['sheet1']
fg = sht.range("AD5")
fg.formula = str_formula
应该在excel中显示的公式是 =SUM(V5:R5/V$2:R$2,AR5/$W$2)/6X$2
但实际在excel中插入的是 =SUM(@V5:R5/@ V$2:R$2,AR5/$W$2)/6X$2
导致excel无法显示计算结果,要手动把@去除
插个标,晚点看看