How can I export a report as a CSV/Excel file and send the report as Email Attachement using Apex Class?

We can send the Salesforce report as csv/excel file with Email attachment using below code:

public class SendReportWithAttachement {
public static void sendEmail() {

ApexPages.PageReference report = new ApexPages.PageReference(‘/00ON0000000avK3?csv=1’);
Messaging.EmailFileAttachment attachment = new Messaging.EmailFileAttachment();

Messaging.SingleEmailMessage message = new Messaging.SingleEmailMessage();
message.setFileAttachments(new Messaging.EmailFileAttachment[] { attachment } );
message.setPlainTextBody(‘The report is attached.’);
message.setToAddresses( new String[] { ‘’ } );
Messaging.sendEmail( new Messaging.SingleEmailMessage[] { message } );


Written by 

2x Salesforce MVP | Platform Champion | 18x Salesforce Certified | MuleSoft Certified | 8x Trailhead Ranger | TechForce Services | Sydney | Australia

Leave a Reply

Your email address will not be published. Required fields are marked *