'Is there a way to calculate a particular sheet in excel using python?
I need to calculate a sheet of interest in excel using python. There is a method to calculate the entire workbook using the following code.
import xlwings as xw
book = xw.Book(file_path)
book.app.calculate()
Is there a way to accomplish the same for a single sheet? Tried
book.sheets["Sheet 1"].calculate
but sheet object has no "calculate" attribute.
Edit. Tried the following too.
import win32com.client
xl = win32com.client.gencache.EnsureDispatch("Excel.Application")
wb = xl.Workbooks.Open(file_path)
wb.Worksheets('Page 2').Calculate()
This doesn't give any error but doesn't work either.
Edit-2 Found the answer finally, been missing "EnableCalculation = True. "
import win32com.client
xl = win32com.client.gencache.EnsureDispatch("Excel.Application")
wb = xl.Workbooks.Open(file_path)
ws = wb.Worksheets('Page 2')
ws.EnableCalculation = True
wb.Worksheets('Page 2').Calculate()
Solution 1:[1]
There was a similar question here. The solution (for now) is to use api.Calculate()
, so you don't need to enable calculations to do this.
So in your second example code, you could instead run:
wb.sheets["Sheet 1"].api.Calculate()
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Rawson |