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 

I am Sakthivel Madesh, a certified Salesforce Advanced Developer & Administrator working on Salesforce Technology since 2011. I am currently working in Techforce Services as Sr. Salesforce Developer. I have worked on multiple technologies Like PHP, Java, Salesforce, I am very passionate about Salesforce and to earn 15x Salesforce Certification. I love Trailhead for learning Salesforce Skill and Become a Trailhead 5x Ranger too. I Love to Learn & Share my Salesforce knowledge to Salesforce Learners/Beginner using My Blog and Salesforce Community.

Leave a Reply

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