Defining What You Want to Do
As with any coding activity, you should have a clear idea of what you want to accomplish with your custom report. If you simply want to re-format data that is presented in the UI, then you will probably focus on setting up the template Excel file so that it presents the data they way you want it.
If you simply want to extract a handful of values that are not available in a single UI screen, and do not care much about the appearance of the data, you, may not even define a spreadsheet format file; just define a simple XML file that extracts the data you want and dumps the raw data into a new .xls file.
If you are looking for an automated status report that runs every night, you will probably focus on extracting the data you are most interested in and executing the report generation from a command line script that kicks off as a Windows scheduled task.
If you are looking to generate a common-format quoting report, you might start by identifying the quantities and expected costs for various models that can be presented in a uniform way, and also spend time with the Excel format to ensure that presents the data in a professional and intuitive way.
Will your report require graphs? Plan to spend some time in the Excel template defining that graphics you want to include.
Regardless of what specific purpose your report will serve, spend some time up front defining what you want it to do.