There are different approaches that you can follow −
First approach would be that you schedule a job and send the result to a mailbox instead of printing it. Then you can use any programming code to read that email and export in desired format.
Other approach would be to check available BAPI’s. These BAPI’s can be called from an external program but for this you need to use SAP ABAP.
Checkout this SAP blog that tells how to generate a report in background and send result to user email id −
You can define distribution list in T-Code − SO23