I've had this problem for years with web application development. Adding a single apostrophe (') is the best option. Unfortunately, Excel will always attempt to format the data based on the value. Anything that looks like a number will automatically be formatted as a number; anything that looks like a date will be formatted like a date; etc... You will have to add a symbol (apostrophe, dash, etc...) in front of the number so that Excel thinks the value is plain text.
The option that I use is to do nothing. If the spreadsheet is going to an end-user, I make sure they understand how to format the data. So they manually format the column to show the leading zeros. The reason that I went with this option is for calculation purposes. If the end-user needs to perform a calculation on the values, it's very difficult when the value has a leading symbol. However, if you do not need to perform a calculation on the value, adding a leading symbol might be your best option.