Salesforce - 将自定义联系人视图导出到Excel

问题描述:

是否可以将自定义联系人视图导出到Excel?我有一个按钮,进入到ExportContacts.page是这样定义:Salesforce - 将自定义联系人视图导出到Excel

<apex:page standardController="Contact" contenttype="application/vnd.ms-excel" recordSetVar="contacts" extensions="ExportContactsExtension" > 
    <apex:pageBlock title="Contacts"> 
    <apex:pageBlockTable value="{!contacts}" var="contact"> 
     <apex:column value="{!contact.LastName}"/> 
     <apex:column value="{!contact.FirstName}"/> 
     <apex:column value="{!contact.Name}"/> 
     <apex:column value="{!contact.MailingCity}"/> 
     <apex:column value="{!contact.Phone}"/> 
     <apex:column value="{!contact.Fax}"/> 
     <apex:column value="{!contact.MobilePhone}"/> 
    </apex:pageBlockTable> 
    </apex:pageBlock> 
</apex:page> 

的ExportContactsExtension.cls就像定义:

public class ExportContactsExtension { 

    public ExportContactsExtension(ApexPages.StandardSetController controller) { 
    //set the page size so all records will be exported 
    controller.setPageSize(controller.getResultSize()); 
    } 

} 

可问题是我出口中指定的特定字段联系人视图?在ExportContacts.page上,我必须定义要导出的字段,例如姓氏,名字等。现在,如果我创建新的联系人视图并添加电子邮件地址,我会在页面上看到它,但如果我点击导出按钮,它不包括电子邮件地址。我可以使动态导出包含当前视图中的所有值吗?

为什么你首先需要这样的观点?控制器中是否有一些复杂的逻辑用于选择记录?

如果可以用标准SOQL(如[SELECT FirstName,LastName,MailingCity,Phone,Fax,MobilePhone FROM Contact])编写查询,那么使用Data Loader导出记录或Excel插件名为“Excel Connector”。

如果您需要能够导出和(预)查看Salesforce页面上的数据 - 请考虑创建报告?这就是他们的目的,并有内置的功能导出到Excel或CSV。

+0

视图是标准的联系人视图 - 它不是自定义控制器。它不包含任何自定义SOQL来检索信息。 – 2010-08-03 15:30:57

您可以使用apex:page组件上的contentType属性将结果导出到Excel。请参阅以下职位:

Visualforce Export to Excel/IE Bug

+0

我更新了ExportContacts.page以包含contenttype - 我已经在我的页面中找到了它,但是它每次都不用启动Excel就可以轻松查看结果,并且不会将其粘贴到此问题中。我可以将指定的字段导出到Excel,但问题仍然是导出新字段(如电子邮件地址)的最佳方式。我可以在ExportContacts.page上动态执行此操作,还是必须对将要导出的字段进行硬编码,并在需要导出新字段时对其进行更新? – 2010-08-03 15:32:41

你问的是什么不幸的是无法与今天的顶点。要做到这一点,你需要一种方式来查询页面布局是为了正在查看的记录,然后检查哪些字段是可见的。