【问题标题】:Salesforce - Export a custom contacts view to ExcelSalesforce - 将自定义联系人视图导出到 Excel
【发布时间】:2010-07-30 20:46:14
【问题描述】:

是否可以将自定义联系人视图导出到 Excel?我有一个指向 ExportContacts.page 的按钮,其定义如下:

<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 上,我必须定义要导出的字段,例如姓氏、名字等。现在,如果我创建一个新的联系人视图并添加电子邮件地址,我会在页面上看到它,但是如果我单击导出按钮,它不包括电子邮件地址。我可以使导出动态以包含当前视图中的所有值吗?

【问题讨论】:

    标签: excel export salesforce


    【解决方案1】:

    为什么您首先需要这样的视图?控制器中是否有一些复杂的逻辑来选择记录?

    如果对它们的查询可以用标准 SOQL 编写(如 [SELECT FirstName, LastName, MailingCity, Phone, Fax, MobilePhone FROM Contact]),那么使用 @ 导出记录可能会更有效987654322@ 或名为“Excel Connector”的 Excel 插件。

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

    【讨论】:

    • 该视图是标准的联系人视图 - 它不是自定义控制器。它不包括任何用于检索信息的自定义 SOQL。
    【解决方案2】:

    很遗憾,今天您的问题无法通过 apex 实现。为此,您需要一种方法来查询正在查看的记录的页面布局,然后检查哪些字段是可见的。

    【讨论】:

      【解决方案3】:

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

      Visualforce Export to Excel / IE Bug

      【讨论】:

      • 我更新了 ExportContacts.page 以包含内容类型 - 我在我的页面中有该内容类型,但将其取出以轻松查看结果,而无需每次都启动 Excel,也没有将其粘贴到此问题中。我可以将指定的字段导出到 Excel,但问题仍然是导出新字段(如电子邮件地址)的最佳方式。我可以在 ExportContacts.page 上动态执行此操作,还是必须对将要导出的字段进行硬编码并在必须导出新字段时更新它们?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多