+ Start a Discussion

Export data to Excel

Hi all,



Is it possible to create a link in Visualforce that when's clicked, export data into excel from Salesforce, not from <apex:pageblockTable>?


Thanks in advance..




You could re-direct the link to a similar VF page that uses Excel as a content type:


<apex:page standardController="Account" contentType="application/vnd.ms-excel#MyFile.xls">


your code....



Ankit Gupta@ DeveloperAnkit Gupta@ Developer


 Try the below snippet as reference:



<apex:page standardController="Account" recordSetVar="accounts" tabstyle="account" sidebar="false">

  <script type="text/javascript">

var tableToExcel = (function() {

  var uri = 'data&colon;application/vnd.ms-excel;base64,'

    , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'

    , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }

    , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }

  return function(table, name) {

    if (!table.nodeType) table = document.getElementById(table)

    var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}

    window.location.href = uri + base64(format(template, ctx))






      <a href="#" onclick="tableToExcel('display1');return false;">export excel</a>


  <div id="display1">


  <apex:repeat value="{!accounts}" var="a">