diff --git a/xlwings/_xlmac.py b/xlwings/_xlmac.py index c512d18b4..addc95910 100644 --- a/xlwings/_xlmac.py +++ b/xlwings/_xlmac.py @@ -465,4 +465,8 @@ def get_calculation(xl_app): def set_calculation(xl_app, value): calculation_reverse = dict(zip(calculation.values(), calculation.keys())) - xl_app.calculation.set(calculation_reverse[value]) \ No newline at end of file + xl_app.calculation.set(calculation_reverse[value]) + + +def calculate(xl_app): + xl_app.calculate() \ No newline at end of file diff --git a/xlwings/_xlwindows.py b/xlwings/_xlwindows.py index 3bf5ce4c1..ef0dd6ce4 100644 --- a/xlwings/_xlwindows.py +++ b/xlwings/_xlwindows.py @@ -498,4 +498,8 @@ def get_calculation(xl_app): def set_calculation(xl_app, value): - xl_app.Calculation = value \ No newline at end of file + xl_app.Calculation = value + + +def calculate(xl_app): + xl_app.Calculate() \ No newline at end of file diff --git a/xlwings/main.py b/xlwings/main.py index ef3a43000..e94e84987 100644 --- a/xlwings/main.py +++ b/xlwings/main.py @@ -91,6 +91,9 @@ def calculation(self): def calculation(self, value): xlplatform.set_calculation(self.xl_app, value) + def calculate(self): + xlplatform.calculate(self.xl_app) + class Workbook(object): """ diff --git a/xlwings/tests/test_xlwings.py b/xlwings/tests/test_xlwings.py index 77e2d62dc..ea53fc138 100644 --- a/xlwings/tests/test_xlwings.py +++ b/xlwings/tests/test_xlwings.py @@ -110,11 +110,15 @@ def test_screen_updating(self): def test_calculation(self): Range('A1').value = 2 Range('B1').formula = '=A1 * 2' - Application(wkb=self.wb).calculation = Calculation.xlCalculationManual - Range('A1').value = 4 + app = Application(wkb=self.wb) + + app.calculation = Calculation.xlCalculationManual + Range('A1').value = 4 assert_equal(Range('B1').value, 4) - Application(wkb=self.wb).calculation = Calculation.xlCalculationAutomatic + + app.calculation = Calculation.xlCalculationAutomatic + app.calculate() # This is needed on Mac Excel 2016 but not on Mac Excel 2011 (changed behaviour) assert_equal(Range('B1').value, 8) class TestWorkbook: