An underscore in a custom number format adds a space the width of the following character.
Why not use the built- in date format of: d-mmm;@
Also, your "dates" could be viewed as text by Excel and therefore the number format would be ignored.
If the "dates" are left-aligned in the column they are text not dates.