Mix equal parts vinegar and lemon juice in hot water and soak until water is cold (room temperature) then wash normally
It depends quite a lot on what the fibre content of the fabric is in the tablecloth. Unfortunately, polyester is notorious for retaining stains with a greasy, or oil base.
If the tablecloth contains polyester, and if it has already been washed and dried with hot water, or any heat, the stain may have already set.
Do you have any idea what the yellow is from?
Have you tried oxiclean? It got red wine out of a white sweater of mine once!