2010-07-30 81 views
0

是否可以將自定義聯繫人視圖導出到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上,我必須定義要導出的字段,例如姓氏,名字等。現在,如果我創建新的聯繫人視圖並添加電子郵件地址,我會在頁面上看到它,但如果我點擊導出按鈕,它不包括電子郵件地址。我可以使動態導出包含當前視圖中的所有值嗎?

回答

1

爲什麼你首先需要這樣的觀點?控制器中是否有一些複雜的邏輯用於選擇記錄?

如果可以用標準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

0

您可以使用apex:page組件上的contentType屬性將結果導出到Excel。請參閱以下職位:

Visualforce Export to Excel/IE Bug

+0

我更新了ExportContacts.page以包含contenttype - 我已經在我的頁面中找到了它,但是它每次都不用啓動Excel就可以輕鬆查看結果,並且不會將其粘貼到此問題中。我可以將指定的字段導出到Excel,但問題仍然是導出新字段(如電子郵件地址)的最佳方式。我可以在ExportContacts.page上動態執行此操作,還是必須對將要導出的字段進行硬編碼,並在需要導出新字段時對其進行更新? – 2010-08-03 15:32:41

0

你問的是什麼不幸的是無法與今天的頂點。要做到這一點,你需要一種方式來查詢頁面佈局是爲了正在查看的記錄,然後檢查哪些字段是可見的。

相關問題