The only thing I've found that works is wiping it off immediately (which isn't going to help you now!). I'm not really hovering-with-a-dishcloth houseproud so our table cloth has a record of brightly coloured meals on it.
I find it fades over a few days. DS has made a horrendous mess in the past ( as has Dh and his mates when they bring a takeaway home after the pub......)and I've scrubbed and scrubbed to no effect, but it fades away after a day or two.
The sun shines on our table, and I think it's this, the same way stains come out of reusable nappies on a sunny day outside.
Peg it on the line in the sun for a day and see what happens.