Unfortunately, the approach of using Apply[Plus, Flatten[nbhd]] is fatal to your algorithm because summing up the cell-values introduces ambiguities. As an example take these rules from your excel file (White (0), Red (1) and Black (2)). This is in the Excel-file at A43:
{{2,2,2},{2,2,0},{0,0,0}} -> 2
And this is in A179:
{{1,1,1},{1,2,1},{1,1,1}} ...

This is a sample problem that I hope can be helpful; a fire that can spread in four directions (the Von Neumann neighborhood). Only trees can catch fire though. A typical fire looks like this:
Any of the methods below can generate it. There appears to be a name collision between method 1 and 2, so you may need to restart the kernel before you can try the ...

Given the rule as explained by Halirutan...
If the number of Red cells is equal to the number of Black cells, then
the center cell gets White. Otherwise the center gets the color Red,
if we have more Red cells and Black if we have more Black cells.
...it's interesting to note how things work if we use the following mapping of colours to numbers:
...

Update: The original post below computes the commonest color in the NeighborhoodGraph of a vertex v including the vertex v itself. To exclude a vertex in counting the colors in its neighborhood, we can use the following helper function:
ClearAll[newClrF];
newClrF = Module[{nc=#, oc=First@#, c1= Commonest[Rest@#][[1]], c2= Quiet@Commonest[Rest@#, 2]},
...

Here's a way to model @Anon's forest fire with image processing. ImageFilter is not very fast, of which the documentation warns you. However it's acceptable, especially because it makes a nice Dynamic animation. Perhaps it could be adapted - certainly if any of Anon's methods can - to the OP's question. One difference is that in the OP's problem, the ...

The "rule" for CAs defines the mapping that is used to calculate successive generations. When you have 3-neighborhoods (one to each side of the current element) there are 8 patterns that can occur: 111, 110, 101, 100, 011, 010, 001, 000. Each of these patterns must be mapped to some binary value. For example the rule that takes 111->0, 110->0, 101->0, ...

Here's a code that seems a bit more in the functional-programming spirit of Mathematica. I divide the tree into active and inactive components to save time that might be wasted updating already-fruited branches. Then I can use a very simple rule to grow the tree. I use a Sow/Reap to quickly scan the tree for collided branches.
root={{},{{e},{w}}};
...

More an extended comment than a complete answer or "how to". Vialiy's comment and the few pages Stephen Wolfram writes on the subject in
A New Kind of Science,
certainly provide a good place to start.
Adding some basic understanding of types of participants might improve your chances of analyzing this problem with CellularAutomaton.
Within any ...

According to this Wikipedia entry (also A New Kind of Science), the number system used by CellularAutomaton is called Wolfram Code.
Inspired by the 1D system, this is how I think the 2D system works.
First we generate all 2D 9-neighbor cases:
baseSet = Tuples[{1, 0}, {3, 3}];
Then we apply the transformation rules on the baseSet one-by-one, and combine ...

My final solution
After working on the code a little bit more, I've come up with a much better way to tackle the problem that I will leave here for posterity
First I define the size of the simulation, create the seed and launch kernels if they aren't already running.
(*Define some variables, generate the seed and launch the kernels.*)
gridSize = 50;
...

The answer is "yes," any function you can represent in a computer can also be represented by a cellular automata. This is because some CAs are "universal Turing machines," which means that anything that can be computed algorithmically can be computed by the CA. Perhaps the best known example is a CA called the game of life.
This is only an existence ...

Mathematica is a registered trademark of Wolfram Research, Inc. While the mark is used herein with the limited permission of Wolfram Research, Stack Exchange and this site disclaim all affiliation therewith.