I'm pretty new to this but I have been building a package with an Excel destination, and it has automatically overwritten the file every time.
I'm not sure if this is the best way, but it works for me.
I have a suite of 3 packages. The first package is a file system task that copies an Excel file from one location to another. The file system task I use is Copy file, and in the Destination Connection details I have set OverwriteDestination to True. Subsequent packages then write data to different sheets in the workbook.
For some background, the file being copied is used as a template (it is not an Excel Template (.xlt), but is used as the basis for all future output). The reason I do this is that the excel workbook contains functionality like Pivot Tables and macros, and it's the only way I know to replicate them in the output.