How can I calculate and hide my formulas in excel

Question:

I have an excel file with a few sheets. After loading data to some sheets, the main sheet formulas must calculate some data. But if I tried to load only data from the file, it s empty because, until I open the excel file, the columns with formulas are not calculating. So how can I calculate formulas without opening ms excel?
I am working with python.

Asked By: Soda_77

||

Answers:

Openpyxl builds xlsx files, it does not interact with Excel so there is no instance of Excel and formulas are not executed. Openpyxl will provide either the value or formula in a cell depending of how the workbook is ‘opened’.
You need to interact with Excel so maybe something like this will help;

Xlwings interacts with Excel and therefore requires a local installation of Excel to use.
In the example cells A1 – A3 have integer values written and cell A4 has a formula written to sum A1:A3. The result of the summing, i.e. value of cell A4 is then printed which shows the value 16911.
You will see that Excel is opened but the workbook is hidden so no data can be seen. At the completion of the code run all instances of Excel are closed.
I have put a slight delay in the code so you can see that the Excel instance does not show the workbook or any of the data.

import time
import xlwings as xw


with xw.App() as app:
    app.display_alerts = False
    app.screen_updating = False

    filename = "formula_test.xlsx"
    wb = xw.Book(filename)
    ws = wb.sheets['Sheet1']

    ws.range("A1").value = 1234
    ws.range("A2").value = 5678
    ws.range("A3").value = 9999

    ws.range("A4").value = '=SUM(A1:A3)'
    time.sleep(10)  # Delay to check Excel instance 

    print("Result :", ws.range("A4").value)

    wb.save(filename)
    wb.close() 

There are other modules that can help with Excel formula calculation if this does not meet your requirement.

Answered By: moken