有没有办法使用 python 计算 excel 中的特定 sheet?
Is there a way to calculate a particular sheet in excel using python?
我需要使用 python 计算对 excel 的 sheet 兴趣。有一种方法可以使用以下代码计算整个工作簿。
import xlwings as xw
book = xw.Book(file_path)
book.app.calculate()
有没有办法对单个 sheet 完成相同的操作?尝试过
book.sheets["Sheet 1"].calculate
但是 sheet 对象没有“计算”属性。
编辑。
也尝试了以下方法。
import win32com.client
xl = win32com.client.gencache.EnsureDispatch("Excel.Application")
wb = xl.Workbooks.Open(file_path)
wb.Worksheets('Page 2').Calculate()
这不会给出任何错误,但也不起作用。
Edit-2
终于找到答案了,一直漏了“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()
有一个类似的问题here。解决方案(目前)是使用 api.Calculate()
,因此您不需要启用计算来执行此操作。
所以在你的第二个示例代码中,你可以改为 运行:
wb.sheets["Sheet 1"].api.Calculate()
我需要使用 python 计算对 excel 的 sheet 兴趣。有一种方法可以使用以下代码计算整个工作簿。
import xlwings as xw
book = xw.Book(file_path)
book.app.calculate()
有没有办法对单个 sheet 完成相同的操作?尝试过
book.sheets["Sheet 1"].calculate
但是 sheet 对象没有“计算”属性。
编辑。 也尝试了以下方法。
import win32com.client
xl = win32com.client.gencache.EnsureDispatch("Excel.Application")
wb = xl.Workbooks.Open(file_path)
wb.Worksheets('Page 2').Calculate()
这不会给出任何错误,但也不起作用。
Edit-2 终于找到答案了,一直漏了“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()
有一个类似的问题here。解决方案(目前)是使用 api.Calculate()
,因此您不需要启用计算来执行此操作。
所以在你的第二个示例代码中,你可以改为 运行:
wb.sheets["Sheet 1"].api.Calculate()