I'm still battling this demon as well, my biggest problem is that the Mrs, takes at will and doesn't let me know until we are out of things.

This quashed all attempts at lists/excel.

What I have been moving towards is Primary and secondary locations.

The kitchen/Pantry is the primary location, where I keep just enough of everything to 'usually' not run out.

Closets/crawlspace/garage/etc are all secondary locations, that have certain items in each. When the pantry runs out, then I get from the secondary location to re-populate the pantry, and then restock the secondary if necessary.

Seems to be working the best so far...