function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
LianaLiana 

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..

 

Regards,
Liana

wt35wt35

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....

 

</apex:page>

Ankit Gupta@ DeveloperAnkit Gupta@ Developer

Hi,

 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))

   

  }

})()

 

</script>

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

 

  <div id="display1">

  <table>

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

<tr>

<td>

{!a.name}

</td>

</tr> 

  </apex:repeat>

  </table>

  </div>

  

 

</apex:page>