I'm looking for resources/info related to the fundamentals of building a type of spreadsheet-ing software (e.g., Excel, Google Docs). Can anyone link me to any resources? Not trying to build actual tool like that, just something a bit similar. I'm having trouble finding any resources related to getting started.
Hi Ralston! I'm building a spreadsheet program myself at the moment (demo and product link at <a href="https://6gu.nz" rel="nofollow">https://6gu.nz</a>).<p>There are two major parts to a spreadsheet app, in my view:<p>1. A UI to change sheet layout and formulas, and to view computed values.<p>2. A "programming language"-like engine to derive computed values from the formulas and sheet layout.<p>In (2) you also have to do a bit of topological sorting to make sure you compute things in the right order, but it's not terribly tricky.<p>A spreadsheet is kinda like a REPL, where the "R" and "P" are the spreadsheet UI and the "E" is the programming language part.<p>In Excel and Google Sheets (but not in my program) there are some fun data structures you might use to make formulas like `SUM(A:A)` (i.e., sum the whole column) run in a reasonable amount of time. Essentially, data structures that take advantage of the sparsity of the grid. I don't know off-hand the best way to go about something like that, but if you didn't want to invent anything yourself I guess you could just throw everything into an off-the-shelf spatial acceleration structure (an r-tree or a quadtree or something.)<p>There's quite a big surface area to the problem, if there's something more specific you want to know, please ask! I can't promise to respond quickly, but I should get back sooner or later.