Macros do work in Ajax, altough not all and they run serverside.
I would create a share that QVS and the users can access. Then use ServerSideExportEx to create Excelfiles.
There are examples in the API guide.
set tb = ActiveDocument.GetSheetObject("CH01")
tb.ServerSideExportEx "\\<share>\test.xls" , ";" , 5 '0=HTML, 1=Text, 2=Bitmap, 3=XML, 4=QVD, 5=BIFF
QV will still need to recalculate the data for the export.
It sounds like your data model may be the problem and it would be better to fix this rather than work around it. Any model with 000s of rows should not have performance problems running on desktop or server. I have many models with millions of rows that recalculate quickly on the desktop and even quicker on the server.