Python 是否可以插入excel公式值而不是公式

Python 是否可以插入excel公式值而不是公式,python,excel,Python,Excel,我正在尝试使用excel公式插入一个值,该公式正在成功执行,但我希望保存该值而不是公式,以下是我目前正在尝试的代码片段 print("Adding formula to " + filename) for i,cellObj in enumerate(sheet_formula['P'],1): cellObj.value='=IF(AND(OR(A{0}="g_m",A{0}="s_m"),ISNUMBER(SEARCH("A", E{0}))), "A"

我正在尝试使用excel公式插入一个值,该公式正在成功执行,但我希望保存该值而不是公式,以下是我目前正在尝试的代码片段

print("Adding formula to " + filename)         


for i,cellObj in enumerate(sheet_formula['P'],1):
        cellObj.value='=IF(AND(OR(A{0}="g_m",A{0}="s_m"),ISNUMBER(SEARCH("A", E{0}))), "A", VLOOKUP(A{0},\'i ma\'!A:B, 2, FALSE))'.format(i)
        sheet_formula.cell(row=1, column=16).value = 'C'
这段代码可以插入公式,但我想保存值而不是公式

“放弃openpyxl的基本原因是:(1)不支持XLS文件处理;(2)测试当前版本样式保留的bug没有得到解决;如果遇到上述两个问题,放弃openpyxl,拥抱xlwings。没有出路。”摘自


“可以使用
xlwings
,它使用pywin32对象与Excel交互,而不仅仅是读/写xlsx或像openpyxl和pandas这样的csv文档。这样,Excel实际上会执行公式,xlwings会获取结果。”摘自


因此,虽然使用
Openpyxl
或任何其他不支持xls文件处理的库作为Python库是不可能的(看起来是这样),但是使用
xlwings
还是可能的。我在下面添加了一个简单的示例。我只是打开了一个新的工作簿,添加了一个公式,并将公式转换为计算值

import xlwings as xw
app = xw.App(visible=False, add_book=False)
wb = app.books.add()
ws = wb.sheets.active
ws['A1'].value = '=3+5'
ws['A1'].value = ws['A1'].value
wb.save(r'C:\Users\...\test.xlsx')
wb.close()
app.quit()
exit()
希望以上内容能有所帮助。请记住;我是Python初学者



对于那些感兴趣的人,可以找到一些关于
Openpyxl
xlWings
之间差异的好解释。还有一个类似的问题,有一些答案可以找到

不确定这是否适用于Python,但在VBA中,当您想将公式转换为值时,我们会
cell.value=cell.value
。插入公式后是否尝试添加
cellObj.value=cellObj.value
?感谢您的帮助,但它不起作用除了
win32com
之外,您是否还使用了其他库?我发现“\u工作表”对象不可下标。或者
sheet\u formula
是工作表以外的东西吗?此外,属性名称似乎区分大小写,例如
Value
而不是
Value
@FoxfireAndBurnsAndBurns,它的工作原理与正确的库=)
ws['A1']类似。Value=ws['A1']。Value
是的,我确信有类似的东西!英雄联盟