<p>Are the formulas represented in a <a href="http://en.wikipedia.org/wiki/Abstract_syntax_tree" rel="nofollow noreferrer">syntax tree</a> then recalculated using a design pattern like the Visitor pattern? How would you go about reproducing the recalculation process in code?</p>

Probably, as you say, one guess is that Excel creates a bunch of ASTs, one for each indipendent group of cells, where the leaves are the originating, static data, and the nodes are formulas.
Then it calculates the result for each node, with a
post-order
tree traversal algorithm.
You have to take into account leaf/node cancellation, partial recalculation, ecc. If I'm not wrong, I read somewhere that Excel could benefit of multicore processors to recalculate a sheet in parallel.