Wow! Glad you had a look around. Yes, please send me an email whenever you feel like.
And yes, you are going to need some sort of "support graph" and topological sorting. But this is way more complicated than it looks like. Most functions in a spreadsheet don't know it's dependencies until you are actually computing them, like `LOOKUP` or `IF`. Some functions like `RANDBETWEEN` or `NOW` change their value every time. In some modern spreadsheets some functions like `SORT` or `UNIQUE` spill their values to some other cells. Calculating dependencies correctly in all those situations can be challenging.
There is not a lot of literature on spreadsheet implementation and reading code of existing open source implementations is hard. And exception is Peter Sesoft:
https://mitpress.mit.edu/9780262526647/spreadsheet-implement...
and
https://www.itu.dk/people/sestoft/funcalc/
My recommendation would be to first set the scope. Then code manually the lexer and parser and drawn those two in tests. Excel formulas can be quite complicated! There are lots of fancy things you can do there like use arena allocators and other optimizations. I would try to avoid that on a first go.
Here is something that I have found extremely convenient. Excel saves the cell formula AND the resulting value. Meaning that to create a test case you just need to create an Excel workbook (and a xlsx parser, of course).
Doing the UI for a spreadsheet is an equally challenging problem.
Good luck!!!!
Oh, and remember this thread from a couple of days ago. Might be inspiring:
https://news.ycombinator.com/item?id=37527720