Giter Site home page Giter Site logo

Comments (3)

vinci1it2000 avatar vinci1it2000 commented on July 30, 2024 1

I have implemented the solution that I mentioned above. Follows an example of usage:

import json
import formulas
xl_model = formulas.ExcelModel().loads('test/test_files/excel.xlsx').finish()
xl_json = json.dumps(xl_model.to_dict(), indent=True)

The JSON has the following format:

{
 "'[EXCEL.XLSX]DATA'!A1": "inputs",
 "'[EXCEL.XLSX]DATA'!B1": "Intermediate",
 "'[EXCEL.XLSX]DATA'!C1": "outputs",
 "'[EXCEL.XLSX]DATA'!D1": "defaults",
 "'[EXCEL.XLSX]DATA'!A2": 2,
 "'[EXCEL.XLSX]DATA'!D2": 1,
 "'[EXCEL.XLSX]DATA'!A3": 6,
 "'[EXCEL.XLSX]DATA'!A4": 5,
 "'[EXCEL.XLSX]DATA'!B2": "=('[EXCEL.XLSX]DATA'!A2 + '[EXCEL.XLSX]DATA'!A3)",
 "'[EXCEL.XLSX]DATA'!C2": "=(('[EXCEL.XLSX]DATA'!B2 / '[EXCEL.XLSX]DATA'!B3) + '[EXCEL.XLSX]DATA'!D2)",
 "'[EXCEL.XLSX]DATA'!B3": "=('[EXCEL.XLSX]DATA'!B2 - '[EXCEL.XLSX]DATA'!A3)",
 "'[EXCEL.XLSX]DATA'!C3": "=(('[EXCEL.XLSX]DATA'!C2 * '[EXCEL.XLSX]DATA'!A2) + '[EXCEL.XLSX]DATA'!D3)",
 "'[EXCEL.XLSX]DATA'!D3": "=(1 + '[EXCEL.XLSX]DATA'!D2)",
 "'[EXCEL.XLSX]DATA'!B4": "=MAX('[EXCEL.XLSX]DATA'!A3:A4, '[EXCEL.XLSX]DATA'!B2)",
 "'[EXCEL.XLSX]DATA'!C4": "=(('[EXCEL.XLSX]DATA'!B3 ^ '[EXCEL.XLSX]DATA'!C2) + '[EXCEL.XLSX]DATA'!D4)",
 "'[EXCEL.XLSX]DATA'!D4": "=(1 + '[EXCEL.XLSX]DATA'!D3)"
}

To retrieve the model:

xl_mdl = ExcelModel().from_dict(json.loads(xl_json))

from formulas.

vinci1it2000 avatar vinci1it2000 commented on July 30, 2024

The easiest solution and the most portable one is to dump the ExcelModel (i.e., the DAG) into a readable JSON format. In this way, you may "easily" maintain your code from the JSON, and afterward, you load it into the ExcelModel.

What do you think? Is it a suitable solution for your problem?

from formulas.

allenlawrence94 avatar allenlawrence94 commented on July 30, 2024

This is great - I ended up going in an altogether different direction with my project, but I think I'll try out this new feature as well. Thanks!

from formulas.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.