vallettea / koala

Transpose your Excel calculations into python for better performances and scaling.
GNU General Public License v3.0
147 stars 59 forks source link

What is the difference between this and pycel? #245

Open ckp95 opened 4 years ago

ckp95 commented 4 years ago

I'm looking for a Python library to help with reverse-engineering many complicated spreadsheets in my organization. I found this library, and also pycel. I'm not sure what the major differences are between the two. In the documentation for koala, it says that pycel

needs an Excel instance running at least once per file

But this is no longer true, afaik it now uses openpyxl to read the file and implements the Excel functions natively (or a subset of them, at least).

In the end, we have a program that is able to:

read the core information of an .xlsx file build a graph that represents the calculation structure of the file modify the graph to add/change cells or formulas reduce the graph size to speed up the calculations, when possible make calculations draw a graphic representation of your graph save the graph into a .gzip file load a graph from a .gzip file And all that, without having Excel installed.

again I think pycel does all of this too.

So what is the benefit of this library over pycel (or vice versa?) Which one is more mature, feature-complete?

bradbase commented 4 years ago

This project leveraged from PyCel to begin. The projects satisfied different needs.

PyCel was born to assist modelling in the aviation industry with a focus on visualization of the model. It is also the "engine" behind PyXll. https://dirkgorissen.com/2011/10/19/pycel-compiling-excel-spreadsheets-to-python-and-making-pretty-pictures/

Koala was born as an experiment to see if using Python could be used to assist in speeding up calculation of business cases for a speculative petroleum company. https://github.com/vallettea/koala/blob/master/doc/presentation.md

Support has diverged since the beginning. They support different featuresets. PyCel appears to have been modernized where koala hasn't (yet.. I'm working on that -- I have an interest as I have a project FlyingKoala).

There is a third, Formulas (and associated Schedula). That's been born from modelling complex systems in the automotive industry. https://github.com/vinci1it2000/formulas