try some starch or flour to soak up the oil. Then wet with a rag that has a mixture of dish soap and water. Keep alternating to remove the stain. Then use a handheld Bissell cleaner for spot cleaning on upholstery. Put a carpet cleaner formula in the machine and spray with the nozzle. Lightly scrub and suck up all the liquid. It does wonders to remove stains and you can also use this method on carpet too. I have also tried a powder Resolve for removing stains and have gotten great results as well. Good luck!
Try mixing up a paste of oxi-clean and water and rub it gently over the spot. Wipe again with a damp, clean cloth to remove any residue and even vacuum once it Is dry. There are also excellent furniture fabric cleaners on the market made by Bissell and Hoover which work really well.
Try rubbing some dish liquid over the stain and gently rubbing with a clean cloth to see if it comes off. Rinse properly so that you get the residue off.
We recently bought a kit of several items to care for leather items in our home. One of these is a leather cleaner/degreaser. I sprayed it on a spot and it is a sudsy liquid but I'm not yet able to speak of its efficacy as yet, just letting you know you can purchase these items.