Take a look at the MVC Pattern
It might be suited to your requirements, I would have a different view for PDF and EXCEL files. As you add new file types you could add a new view to handle each of them.
The Controller is the link between your user input and the system, it might take a selection from you for the view you wish to see.
The Model is essentially the data you wish to present in your reports. This should be the same for the pdf or excel report.
The View will be either an excel view which creates the excel file, or a pdf view which creates the pdf file. Both use the model as input.
Assumption you have a user interface.