We have milestones
OK
some payment milestones and some normal milestones
I guess these are Milestone types
The milestones contain detailed activities.
I don't understand this point

Milestones have no duration, but activities have, so Milestones cannot
contain activities.
All these are assigned to a resource with specific due dates
Our contractual reporting period is every quarter. At the end of each quarter we need to produce a report with a spreadsheet to the client and DFID indicating the work done against the schedule
OK, it seems clear.
It can be that the consultant created various detailed tasks for each activity
You mean sub-activities ?
assign them to other resources or even client resources. As these are done or new notes are added, we build the history. I did configure the system that on closure of an activity, one needs the capture the result field.
OK, all this is standard ProjeQtOr behavior.
The spreadsheet contain the following columns:
What "spreadshhed" are you talking about ?
What I was thinking is what if there is a function where the user can define what fields to be used and in which order as well as level of detail.
"define what field to be used" ... where ?