Comments (3)
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.
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.
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)
- by the way the TRUNC function is missing or broken
- Error found during using formula reference in range
- How to create a custom function that calls .xll file?
- Combination with IFERROR and VLOOKUP from another sheet does not return a correct value HOT 1
- How to define custom variable placeholder HOT 3
- Are tables implemented? HOT 7
- Not a valid formula for decimal numbers missing any digits before the decimal HOT 1
- Question: How to ignore invalid formula HOT 2
- Possible to implement TEXT() and VALUE() functions? HOT 1
- Issue with parenthesis and logical operators HOT 1
- Workbook calculate modifies filename, sheet names to uppercase HOT 1
- Example results #VALUE! HOT 1
- Can it handle macro contained in excel cell HOT 1
- Calculated ranges to be used inside another function HOT 1
- Interface for implementing functions in formulas
- Save the model HOT 1
- Question - is it possible to import a openpyxl workbook? HOT 1
- Range Assembly construction infinite loop HOT 1
- Range Assembly inefficient HOT 4
- Help needed on using Formulas in parsing SUMPRODUCT formula HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from formulas.