I have several goals in this project/question and I believe to achieve them I have to use a combination of Access and Excel. I sort of know what I'm doing with Excel VBA but Access is giving me fits.

I have 30+ different reports in Access I need to be able to produce in one document with a table of contents.

The main reasons I am using Access in this project are:
1) the ability to name the headers of a report differently from the actual field names. My field names are abbreviated database junk, but I need to produce reports with nice complete phrases in the headers. I am happy to write code to control the export, but I don't want to write code to manually over-write each header name.
2) the ability to define column width and have it stay stable no matter what data is in it.

The reason I can't just print directly from Access is that I already have Excel macros for making tables of contents, and my research indicates that a complete table of contents for multiple reports is prohibitively difficult in Access.

The options I know of to export from Access to Excel are:
DoCmd.OutputTo
and
DoCmd.TransferSpreadsheet

It appears neither one of them will give me what I want. TransferSpreadsheet doesn't work for reports (?) and OutputTo looses my nice clean headers and just exports the junk field names. I ran across a forum the other day where someone admitted that we need something else, and wrapped Excel VBA inside their Access module and I think maybe used a loop to read header names directly and replace them in Excel? Unfortunately I can't find that thread now...

Do any of you know how to get the header names out of an Access report and into Excel? I can't afford to manually code each header/field substitution.

I don't care if the method ends up writing a different Excel file for each report--I've got code that will combine multiple Excel files into one so I can use my table of contents macro.

Thanks!