我想要做的是 1) 在 Excel 中获取公式结果,2) 将值更新到现有的 Excel 文件。 [我使用“xlsxwriter”创建并编写了公式。但是当我尝试openpyxl(或pandas)检索公式结果时,它返回0。我想使用“xlwings”来解决这个问题,但不知道该怎么做。有人可以帮忙吗?
#openpyx
wb = openpyxl.load_workbook(filename=xlsx_name,data_only=True)
ws = wb.get_sheet_by_name("sheet1")
print "venn_value",(ws.cell('X2').value)
#pandas
fold_merge_data=pd.read_excel(xlsx_name,sheetname=1)
print fold_merge_data['Venn diagram'][:10]
最佳答案
是的,xlwings 可以为您解决这个问题,因为它使用 pywin32 对象与 Excel 交互,而不是像 openpyxl 和 pandas 那样仅仅读取/写入 xlsx 或 csv 文档。这样,Excel 实际上执行公式,xlwings 获取结果。
为了获得值(value),你可以这样做:
import xlwings as xw
sheet = xw.sheets.active # if the document is open
#otherwise use sheet = xw.Book(r'C:/path/to/file.xlsx').sheets['sheetname']
result = sheet['X2'].value
另请注意,您可以使用以下方法设置公式
sheet['A1'].value = '=1+1' # or ='B1*2' if you want to reference other cells
关于python-2.7 - 如何使用xlwings在Excel中获取公式结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40925185/