Most often it's very helpful to use different objects for displaying within dashboards and other reports and which will be printed or exported. In any case you need an additionally logic to reduce the number of columns - this could be within a single object visibilty-conditions maybe triggered per buttons which set a variable-value ...
So your table having 50 columns but you want create report with only 10 columns then
The easiest way is create another table with only required 10 columns and use this newly created table to generate report.
I haven't a sample which I could easily share here but with different objects it's quite easy to implement this.
Create a new sheet named with print+exports which contained all your objects which are intended to be printed or exported. From your origin objects you makes a copy, put in that sheet and customize it - maybe per removing or deactivating from dimensions and expressions and maybe some more. If this printing/exporting isn't aimed for (all) user inter-activity you could simply hide this sheet per conditions like if(match(osuser(), 'user1', ... and use their object-id's within your actions and macros.
Yes, adding to Marcus Sommer , Create one sheet-> s straight table with limited number of rows(as required)
Create one report from menu options, drag and drop the new straight table from the new sheet with limited number of rows.
Now when ever we want a pdf report with only some 10 records we can get using the report