Skip to main content

Latest Post

Custom Metadata Types vs Custom Settings vs Custom Labels

  Custom Metadata Types vs Custom Settings vs Custom Labels 💬 In plain words:  Three lookalikes: Custom Metadata = configuration that DEPLOYS with your code (best for app settings). Custom Settings = org/user-specific values, changeable at runtime (hierarchy type is great for bypass switches). Custom Labels = translatable text for the UI. 📌 Example:  API endpoint URLs per environment → Custom Metadata (deploys with code, sandbox vs prod values). A 'Bypass_Automation__c' checkbox an admin flips during data load → hierarchy Custom Setting. The word 'Submit' translated to Hindi → Custom Label. 🎬 Real-Life Example: The Fee Table Trapped Inside Code  Skyline charges a different delivery fee per city. Apex needs those rates on every booking. The Old/Bad Way:  if (city == 'Delhi') fee = 50. Else if (city == 'Mumbai') fee = 65. … Every rate change is a code change, a test run, and a deployment. Why this is bad:  Business data is trappe...

Export Data to CSV Using Lightning Aura with Code Examples

Introduction:

In Salesforce development, exporting data to a CSV (Comma Separated Values) file is a common requirement. It allows users to extract data from their Salesforce org and analyze it in various external tools like Excel or other data analysis software. In this blog post, we will explore how to export data to a CSV file using Lightning Aura, the user interface framework in Salesforce, and provide you with code examples to get started.


Prerequisites:


Before we dive into the code examples, make sure you have the following prerequisites in place:

  1. Salesforce Developer Account or Sandbox
  2. Basic knowledge of Lightning Aura components and Apex

Step 1: Set up the Aura Component


First, we need to create an Aura component that will serve as the user interface for triggering the data export process. Below is an example of a basic Aura component that includes a button to initiate the export.


<!-- ExportDataToCSV.cmp -->

<aura:component>

    <lightning:button label="Export to CSV" onclick="{! c.exportToCSV }" />

</aura:component>


Step 2: Implement the Controller JavaScript


Next, we need to implement the controller JavaScript that handles the export functionality. In the example below, we utilize the lightning:workspaceAP and lightning:fileSaver components to export data to a CSV file.


/* ExportDataToCSVController.js */

({

    exportToCSV: function(component, event, helper) {

        // Retrieve data from your Salesforce org using Apex

        var action = component.get("c.retrieveData");

        

        action.setCallback(this, function(response) {

            var state = response.getState();

            if (state === "SUCCESS") {

                var data = response.getReturnValue();

                var csvContent = helper.convertArrayOfObjectsToCSV(data);

                

                // Create a CSV file

                var file = new File([csvContent], "export.csv", { type: "text/csv;charset=utf-8" });

                

                // Save the file using lightning:fileSaver

                component.find("fileSaver").save(file);

            } else {

                console.error(response.getError());

            }

        });

        

        $A.enqueueAction(action);

    }

})


Step 3: Implement the Helper JavaScript

In the controller JavaScript, we reference a helper function called convertArrayOfObjectsToCSV. This helper function converts the data retrieved from your Salesforce org into a CSV format. Below is an example of how you can implement this helper function.


/* ExportDataToCSVHelper.js */

({

    convertArrayOfObjectsToCSV: function(data) {

        var csvStringResult, counter, keys, columnDivider, lineDivider;

        if (data == null || !data.length) {

            return null;

        }

        

        columnDivider = ',';

        lineDivider = '\n';

        

        keys = Object.keys(data[0]);

        

        csvStringResult = '';

        csvStringResult += keys.join(columnDivider);

        csvStringResult += lineDivider;

        

        for (var i = 0; i < data.length; i++) {

            counter = 0;

            

            for (var key in data[i]) {

                if (counter > 0) {

                    csvStringResult += columnDivider;

                }

                

                csvStringResult += '"' + data[i][key] + '"';

                counter++;

            }

            

            csvStringResult += lineDivider;

        }

        

        return csvStringResult;

    }

})


Step 4: Implement the Apex Controller


Now, we need to implement the Apex controller that retrieves the data from your Salesforce org. In this example, we assume you have an Apex class called ExportDataToCSVController with a method called retrieveData that returns the desired data.


/* ExportDataToCSVController.cls */

public class ExportDataToCSVController {

    @AuraEnabled

    public static List<SObject> retrieveData() {

        // Implement your logic to retrieve the data

        List<SObject> data = [SELECT Id, Name, Email FROM Contact LIMIT 100];

        return data;

    }

}


Conclusion:


In this blog post, we explored how to export data to a CSV file using Lightning Aura in Salesforce. We provided code examples for the Aura component, controller JavaScript, helper JavaScript, and Apex controller. By following these examples, you can enable users to export data from your Salesforce org and analyze it in external tools. Feel free to customize the code to fit your specific requirements and extend the functionality as needed. 


Happy coding!

Popular Posts

Salesforce LWC Code for Multi-Select Lookup

Introduction: In Salesforce Lightning Web Components (LWC), implementing a multi-select lookup field can enhance the user experience and provide greater flexibility for selecting multiple related records. In this blog post, we will walk through the process of creating a multi-select lookup field using LWC. We will cover the required code snippets and provide step-by-step instructions to help you implement this functionality in your Salesforce org.